cvs: phpdoc /scripts/iniupdate pecl.php update-all.php

From: 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"; }

« previous php.doc (#969378055) next »