1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/dokuwiki_ynh.git synced 2024-09-03 18:26:20 +02:00
dokuwiki_ynh/sources/inc/TarLib.class.php
2014-02-11 14:56:25 +01:00

87 lines
No EOL
2.4 KiB
PHP

<?php
/**
* This is a compatibility wrapper around the new Tar class
*
* Use of this library is strongly discouraged. Only basic extraction is wrapped,
* everything else will fail.
*
* @deprecated 2012-11-06
*/
class TarLib {
const COMPRESS_GZIP = 1;
const COMPRESS_BZIP = 2;
const COMPRESS_AUTO = 3;
const COMPRESS_NONE = 0;
const TARLIB_VERSION = '1.2';
const FULL_ARCHIVE = -1;
const ARCHIVE_DYNAMIC = 0;
const ARCHIVE_RENAMECOMP = 5;
const COMPRESS_DETECT = -1;
private $file = '';
private $tar;
public $_result = true;
function __construct($file, $comptype = TarLib::COMPRESS_AUTO, $complevel = 9) {
if(!$file) $this->error('__construct', '$file');
$this->file = $file;
switch($comptype) {
case TarLib::COMPRESS_AUTO:
case TarLib::COMPRESS_DETECT:
$comptype = Tar::COMPRESS_AUTO;
break;
case TarLib::COMPRESS_GZIP:
$comptype = Tar::COMPRESS_GZIP;
break;
case TarLib::COMPRESS_BZIP:
$comptype = Tar::COMPRESS_BZIP;
break;
default:
$comptype = Tar::COMPRESS_NONE;
}
$this->complevel = $complevel;
try {
$this->tar = new Tar();
$this->tar->open($file, $comptype);
} catch(Exception $e) {
$this->_result = false;
}
}
function Extract($p_what = TarLib::FULL_ARCHIVE, $p_to = '.', $p_remdir = '', $p_mode = 0755) {
if($p_what != TarLib::FULL_ARCHIVE) {
$this->error('Extract', 'Ep_what');
return 0;
}
try {
$this->tar->extract($p_to, $p_remdir);
} catch(Exception $e) {
return 0;
}
return 1;
}
function error($func, $param = '') {
$error = 'TarLib is deprecated and should no longer be used.';
if($param) {
$error .= "In this compatibility wrapper, the function '$func' does not accept your value for".
"the parameter '$param' anymore.";
} else {
$error .= "The function '$func' no longer exists in this compatibility wrapper.";
}
msg($error, -1);
}
function __call($name, $arguments) {
$this->error($name);
}
}