mirror of
https://github.com/YunoHost-Apps/dokuwiki_ynh.git
synced 2024-09-03 18:26:20 +02:00
87 lines
No EOL
2.4 KiB
PHP
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);
|
|
}
|
|
} |