lowercase actual package name
[pharext/replicator.pharext.org] / bin / pecl+sig
index c1c54438364846bf71de04e1113f2d93ac16bb9c..17ed73b1058f02c3d9bd61b52ebafa50b4557262 100755 (executable)
@@ -24,9 +24,20 @@ function fail($pkg, $ver, $skp, $fmt) {
 }
 
 function sign($pkg, $ext) {
-       $fmt = "%s/%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);
        }
 }
 
@@ -62,21 +73,20 @@ function work($url, $dir) {
        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("https://pecl.php.net/feeds/$what.rss"))) {
        foreach ($sxe->item as $item) {
-               $url = str_replace("http://", "https://", (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)) {
@@ -85,20 +95,21 @@ if (($sxe = simplexml_load_file("https://pecl.php.net/feeds/$what.rss"))) {
                                        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))
                ;
-       
+
 }