cvs: phpdoc /scripts/iniupdate pecl.php update-all.php
| From: | Nuno Lopes | Date: | Thu, 06 Sep 2007 16:03:25 +0000 |
| Subject: | cvs: phpdoc /scripts/iniupdate pecl.php update-all.php | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969378055@lists.php.net to get a copy of this message | ||
nlopess Thu Sep 6 16:03:25 2007 UTC
Modified files:
/phpdoc/scripts/iniupdate pecl.php update-all.php
Log:
really fix the download issue with the PECL packages
http://cvs.php.net/viewvc.cgi/phpdoc/scripts/iniupdate/pecl.php?r1=1.6&r2=1.7&diff_format=u
Index: phpdoc/scripts/iniupdate/pecl.php
diff -u phpdoc/scripts/iniupdate/pecl.php:1.6 phpdoc/scripts/iniupdate/pecl.php:1.7
--- phpdoc/scripts/iniupdate/pecl.php:1.6 Thu Sep 6 15:16:36 2007
+++ phpdoc/scripts/iniupdate/pecl.php Thu Sep 6 16:03:25 2007
@@ -86,8 +86,4 @@
grab_pecl_release($pkg, $ver);
}
}
-
- // cleanup garbage left by the extraction of the .tgz files
- @unlink('package.xml');
- @unlink('package2.xml');
}
http://cvs.php.net/viewvc.cgi/phpdoc/scripts/iniupdate/update-all.php?r1=1.6&r2=1.7&diff_format=u
Index: phpdoc/scripts/iniupdate/update-all.php
diff -u phpdoc/scripts/iniupdate/update-all.php:1.6 phpdoc/scripts/iniupdate/update-all.php:1.7
--- phpdoc/scripts/iniupdate/update-all.php:1.6 Wed Sep 5 18:26:35 2007
+++ phpdoc/scripts/iniupdate/update-all.php Thu Sep 6 16:03:25 2007
@@ -21,45 +21,41 @@
require_once './pecl.php';
-/** find a dir in a case-insensitive way */
-function try_dir_combinations($dir)
+/** find a dir inside the current pwd */
+function find_a_dir()
{
- $len = strlen($dir);
- $pattern = '';
-
- for ($i=0; $i<$len; ++$i) {
- if (ctype_alpha($dir[$i])) {
- $pattern .= '['.strtolower($dir[$i]).strtoupper($dir[$i]).']';
- } else {
- $pattern .= $dir[$i];
- }
+ foreach (scandir('.') as $f) {
+ if ($f !== '.' && $f !== '..' && is_dir($f)) return $f;
}
- $match = glob($pattern);
-
- return $match ? $match[0] : null;
+ return false;
}
/** fetch a tag sources */
function download_sources($url, $dir, $filename, $finaldir)
{
- if (is_dir(try_dir_combinations($finaldir))) {
+ if (is_dir($finaldir)) {
echo "already there\n";
return;
}
+ @mkdir('tmp');
+ chdir('tmp');
+
if (!@copy($url, $filename)) {
echo "\033[1;31mFAILED\033[0m\n";
+ chdir('..');
+
rm -fr tmp;
return;
}
$filename = escapeshellarg($filename);
- tar xfz $filename 2>&1 | grep -v "A lone zero block at"; // also
skip some warnings from tar
+ tar xfz $filename 2>&1 | grep -v "A lone zero block at"; //
silence some warnings from tar
- // this is needed because PECL packages differ
- $dir = try_dir_combinations($dir);
+ // this is needed because PECL packages don't have a naming standard for directories
+ $dir = find_a_dir();
if (!$dir) {
die("directory not found for the following file: $filename\n");
}
@@ -67,18 +63,21 @@
$dir = escapeshellarg($dir);
$finaldir = escapeshellarg($finaldir);
- if ($finaldir != $dir) {
+ if ($finaldir !== $dir) {
$cmds[] = "mv $dir $finaldir";
}
- $cmds[] = "rm $filename";
$cmds[] = 'find ' .$finaldir. ' -type f -and -not -name "*.[chly]"
-and -not -name "*.ec" -and -not -name "*.lex" | xargs rm -f';
- $cmds[] = 'while ( find ' .$finaldir. ' -depth -type d -and -empty | xargs rm -r
2>/dev/null ) ; do true ; done';
+ $cmds[] = 'while ( find ' .$finaldir. ' -depth -mindepth 1 -type d -and -empty |
xargs rm -r 2>/dev/null ) ; do true ; done';
+ $cmds[] = "mv $finaldir ..";
foreach ($cmds as $cmd) {
exec($cmd);
}
+ chdir('..');
+ rm -fr tmp;
+
echo "\033[1;32mdone\033[0m\n";
}