cvs: php4 / configure.in /pear Makefile.in /pear/scripts phptar.in
| From: | Stig Bakken | Date: | Sun, 19 Aug 2001 00:34:08 +0000 |
| Subject: | cvs: php4 / configure.in /pear Makefile.in /pear/scripts phptar.in | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-571@lists.php.net to get a copy of this message | ||
ssb Sat Aug 18 20:34:08 2001 EDT
Added files:
/php4/pear/scripts phptar.in
Modified files:
/php4 configure.in
/php4/pear Makefile.in
Log:
Added "phptar" command as proof that the Archive_Tar class works.
# Great work, Vincent!
Index: php4/configure.in
diff -u php4/configure.in:1.270 php4/configure.in:1.271
--- php4/configure.in:1.270 Sat Aug 18 14:14:22 2001
+++ php4/configure.in Sat Aug 18 20:34:07 2001
@@ -1,4 +1,4 @@
-dnl ## $Id: configure.in,v 1.270 2001/08/18 18:14:22 sniper Exp $ -*- sh -*-
+dnl ## $Id: configure.in,v 1.271 2001/08/19 00:34:07 ssb Exp $ -*- sh -*-
dnl ## Process this file with autoconf to produce a configure script.
divert(1)
@@ -923,7 +923,7 @@
$php_shtool mkdir -p pear/scripts
ALL_OUTPUT_FILES="php4.spec Zend/Makefile main/build-defs.h \
pear/scripts/pear pear/scripts/phpize pear/scripts/php-config \
-pear/scripts/pearize TSRM/Makefile $PHP_OUTPUT_FILES"
+pear/scripts/pearize pear/scripts/phptar TSRM/Makefile $PHP_OUTPUT_FILES"
AC_OUTPUT($ALL_OUTPUT_FILES, [], [
Index: php4/pear/Makefile.in
diff -u php4/pear/Makefile.in:1.84 php4/pear/Makefile.in:1.85
--- php4/pear/Makefile.in:1.84 Fri Aug 17 04:51:09 2001
+++ php4/pear/Makefile.in Sat Aug 18 20:34:08 2001
@@ -138,7 +138,7 @@
dynlib.m4 \
acinclude.m4
-bin_SCRIPTS = phpize php-config pear pearize
+bin_SCRIPTS = phpize php-config pear pearize phptar
install-build:
$(mkinstalldirs) $(INSTALL_ROOT)$(phpbuilddir) $(INSTALL_ROOT)$(bindir) && \
@@ -182,6 +182,9 @@
scripts/phpize: scripts/phpize.in $(top_builddir)/config.status
(cd ..;CONFIG_FILES=pear/scripts/phpize CONFIG_HEADERS= $(top_builddir)/config.status)
+
+scripts/phptar: scripts/phptar.in $(top_builddir)/config.status
+ (cd ..;CONFIG_FILES=pear/scripts/phptar CONFIG_HEADERS= $(top_builddir)/config.status)
scripts/pearize: scripts/pearize.in $(top_builddir)/config.status
(cd ..;CONFIG_FILES=pear/scripts/pearize CONFIG_HEADERS= $(top_builddir)/config.status)
Index: php4/pear/scripts/phptar.in
+++ php4/pear/scripts/phptar.in
#!@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 "Experimental/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;
}
// }}}
?>