diff options
author | Tomas V.V.Cox <cox@php.net> | 2002-06-09 18:25:40 +0000 |
---|---|---|
committer | Tomas V.V.Cox <cox@php.net> | 2002-06-09 18:25:40 +0000 |
commit | 613496c4ef7c4ea3f485584aebcacffda13c57ba (patch) | |
tree | 98a4c01ca2fa6b3c0dd598859c245743bee8fe00 /pear/scripts | |
parent | c67c59564593af1fe6fda1fa4d978462bcc60c7e (diff) | |
download | php-git-613496c4ef7c4ea3f485584aebcacffda13c57ba.tar.gz |
Moved to pear/Archive_Tar/scripts
Diffstat (limited to 'pear/scripts')
-rwxr-xr-x | pear/scripts/phptar.in | 236 |
1 files changed, 0 insertions, 236 deletions
diff --git a/pear/scripts/phptar.in b/pear/scripts/phptar.in deleted file mode 100755 index 08361c1d0a..0000000000 --- a/pear/scripts/phptar.in +++ /dev/null @@ -1,236 +0,0 @@ -#!@prefix@/bin/php -Cq -<?php // -*- PHP -*- - -// {{{ setup - -define('S_IFDIR', 0040000); // Directory -define('S_IFCHR', 0020000); // Character device -define('S_IFBLK', 0060000); // Block device -define('S_IFREG', 0100000); // Regular file -define('S_IFIFO', 0010000); // FIFO -define('S_IFLNK', 0120000); // Symbolic link -define('S_IFSOCK', 0140000); // Socket - -require_once "PEAR.php"; -require_once "Archive/Tar.php"; -require_once "Console/Getopt.php"; - -// }}} -// {{{ options - -$verbose = false; -$op_create = false; -$op_list = false; -$op_extract = false; -$use_gzip = false; -$file = ''; - -$progname = basename(array_shift($argv)); - -$options = Console_Getopt::getopt($argv, "h?ctxvzf:"); -if (PEAR::isError($options)) { - usage($options); -} - -$opts = $options[0]; -foreach ($opts as $opt) { - switch ($opt[0]) { - case 'v': { - $verbose = true; - break; - } - case 'c': { - $op_create = true; - break; - } - case 't': { - $op_list = true; - break; - } - case 'x': { - $op_extract = true; - break; - } - case 'z': { - $use_gzip = true; - break; - } - case 'f': { - $file = $opt[1]; - break; - } - case 'h': - case '?': { - usage(); - break; - } - } -} - -if ($op_create + $op_list + $op_extract > 1) { - usage("Only one of -c, -t and -x can be specified at once!"); -} - -if ($op_create + $op_list + $op_extract == 0) { - usage("Please specify either -c, -t or -x!"); -} - -if (empty($file)) { - if ($op_create) { - $file = "php://stdout"; - } else { - $file = "php://stdin"; - } -} - -// }}} - -$tar = new Archive_Tar($file, $use_gzip); -$tar->setErrorHandling(PEAR_ERROR_DIE, "$progname error: %s\n"); - -if ($op_create) { - do_create($tar, $options[1]); - $tar->create($options[1]); -} elseif ($op_list) { - do_list($tar, $verbose); -} elseif ($op_extract) { - do_extract($tar); -} - -// {{{ getrwx() - -function getrwx($bits) { - $str = ''; - $str .= ($bits & 4) ? 'r' : '-'; - $str .= ($bits & 2) ? 'w' : '-'; - $str .= ($bits & 1) ? 'x' : '-'; - return $str; -} - -// }}} -// {{{ getfiletype() - -function getfiletype($bits) { - static $map = array( - '-' => S_IFREG, - 'd' => S_IFDIR, - 'l' => S_IFLNK, - 'c' => S_IFCHR, - 'b' => S_IFBLK, - 'p' => S_IFIFO, - 's' => S_IFSOCK, - ); - foreach ($map as $char => $mask) { - if ($bits & $mask) { - return $char; - } - } -} - -// }}} -// {{{ getuser() - -function getuser($uid) { - static $cache = array(); - if (isset($cache[$uid])) { - return $cache[$uid]; - } - if (function_exists("posix_getpwuid")) { - if (is_array($user = @posix_getpwuid($uid))) { - $cache[$uid] = $user['name']; - return $user['name']; - } - } - $cache[$uid] = $uid; - return $uid; -} - -// }}} -// {{{ getgroup() - -function getgroup($gid) { - static $cache = array(); - if (isset($cache[$gid])) { - return $cache[$gid]; - } - if (function_exists("posix_getgrgid")) { - if (is_array($group = @posix_getgrgid($gid))) { - $cache[$gid] = $group['name']; - return $group['name']; - } - } - $cache[$gid] = $gid; - return $gid; -} - -// }}} -// {{{ do_create() - -function do_create(&$tar, &$files) -{ - $tar->create($files); -} - -// }}} -// {{{ do_list() - -function do_list(&$tar, $verbose) -{ - static $rwx = array(4 => 'r', 2 => 'w', 1 => 'x'); - $files = $tar->listContent(); - if (is_array($files) && sizeof($files) > 0) { - foreach ($files as $file) { - if ($verbose) { - $fm = (int)$file['mode']; - $mode = sprintf('%s%s%s%s', getfiletype($fm), - getrwx(($fm >> 6) & 7), getrwx(($fm >> 3) & 7), - getrwx($fm & 7)); - $owner = getuser($file['uid']) . '/' . getgroup($file['gid']); - printf("%10s %-11s %7d %s %s\n", $mode, $owner, $file['size'], - date('Y-m-d H:i:s', $file['mtime']), $file['filename']); - } else { - printf("%s\n", $file['filename']); - } - } - } -} - -// }}} -// {{{ do_extract() - -function do_extract(&$tar, $destdir = ".") -{ - $tar->extract($destdir); -} - -// }}} -// {{{ usage() - -function usage($errormsg = '') -{ - global $progname; - $fp = fopen("php://stderr", "w"); - if ($errormsg) { - if (PEAR::isError($errormsg)) { - fwrite($fp, $errormsg->getMessage() . "\n"); - } else { - fwrite($fp, "$errormsg\n"); - } - } - fwrite($fp, "$progname [-h|-?] {-c|-t|-x} [-z] [-v] [-f file] [file(s)...] -Options: - -h, -? Show this screen - -c Create archive - -t List archive - -x Extract archive - -z Run input/output through gzip - -f file Use <file> as input or output (default is stdin/stdout) - -"); - fclose($fp); - exit; -} - -// }}} - -?> |