}
function sign($pkg, $ext) {
- $fmt = "%s/bin/%s-sign %s %s";
+ $fmt = "%s/%s-%s %s %s%s";
foreach (["rsa", "gpg"] as $sig) {
- passthru(sprintf($fmt, __DIR__, $sig, $pkg, $ext));
+ foreach (["", ".gz", ".bz2"] as $typ) {
+ passthru(sprintf($fmt, __DIR__, $sig, "sign", $pkg, $ext, $typ));
+ passthru(sprintf($fmt, __DIR__, $sig, "vrfy", $pkg, $ext, $typ));
+ }
+ }
+}
+
+function info($pkg, $dir) {
+ $pkg = strtolower($pkg);
+ $inf = file_get_contents("https://pecl.php.net/rest/p/$pkg/info.xml");
+ if ($inf) {
+ file_put_contents("$dir/info.xml", $inf);
}
}
require_once __DIR__."/../vendor/autoload.php";
$packager = new pharext\Packager;
$packager->run(5, [
- $_SERVER["argv"][0],
- "-qps",
- $url,
- "-Zzd",
+ $_SERVER["argv"][0],
+ "-qps",
+ $url,
+ "-Zzd",
$dir
]);
};
-if (($sxe = simplexml_load_file("http://pecl.php.net/feeds/$what.rss"))) {
+if (($sxe = simplexml_load_file("https://pecl.php.net/feeds/$what.rss"))) {
foreach ($sxe->item as $item) {
- $url = (string) $item->link;
- $pkg = basename(dirname($url));
- $ver = basename($url);
+ list($pkg, $ver) = explode(" ", (string) $item->title);
+ $url = sprintf("https://pecl.php.net/get/%s/%s", $pkg, $ver);
$skp = sprintf("%s/../skip/%s/%s", __DIR__, $pkg, $ver);
- $ext = sprintf("%s/../public/phars/%s/%s-%s.ext.phar", __DIR__, $pkg, $pkg, $ver);
+ $ext = sprintf("%s/../public/phars/%s/%s-%s.ext.phar", __DIR__, $pkg, strtolower($pkg), $ver);
$dir = dirname($ext);
if (!is_file($skp) && !is_file($ext)) {
exit;
case 0:
work($url, $dir);
+ info($pkg, $dir);
exit;
default:
$pids[$pid] = compact("url", "pkg", "ver", "skp", "ext", "dir");
break;
}
}
-
+
if (count($pids) > 5) {
wait($pids);
}
}
while (wait($pids))
;
-
+
}