flush
[m6w6/replicator] / bin / fetch
index 0523c96a944c56f1e336950169a04966ed20e53b..4b49e3421638d08ff82aa68b6de3623c2420d302 100755 (executable)
--- a/bin/fetch
+++ b/bin/fetch
@@ -16,24 +16,24 @@ $client->setOptions([
 ]);
 
 while (!feof(STDIN)) {
-       if (strlen($url = rtrim(fgets(STDIN)))) {
-               $url = new Url($url, null, 0);
-               $ver = basename($url->path);
-               $pkg = basename(dirname($url->path));
-               $skp = sprintf("%s/../build/%s-%s.skip", __DIR__, $pkg, $ver);
-               $tgz = sprintf("%s/../build/%s-%s.tgz", __DIR__, $pkg, $ver);
-               $ext = sprintf("%s/../public/phars/%s/%s-%s.ext.phar", __DIR__, $pkg, $pkg, $ver);
+   if (strlen($line = rtrim(fgets(STDIN)))) {
+        if (list($pkg, $ver, $url) = explode("\t", $line)) {
+                       $url = new Url($url, null, 0);
+                       $skp = sprintf("%s/../build/%s-%s.skip", __DIR__, $pkg, $ver);
+                       $tgz = sprintf("%s/../build/%s-%s.tgz", __DIR__, $pkg, $ver);
+                       $ext = sprintf("%s/../public/phars/%s/%s-%s.ext.phar", __DIR__, $pkg, $pkg, $ver);
 
-               if (is_file($skp)) {
-                       // skip
-               } elseif (is_file($tgz) || is_file($ext)) {
-                       printf("%s\t%s\t%s\n", $pkg, $ver, $tgz);
-               } else {
-                       $client->enqueue(new Request("GET", $url), function($res) use($tgz, $pkg, $ver) {
-                               $res->getBody()->toStream(fopen($tgz, "w"));
+                       if (is_file($skp)) {
+                               // skip
+                       } elseif (is_file($tgz) || is_file($ext)) {
                                printf("%s\t%s\t%s\n", $pkg, $ver, $tgz);
-                               return true;
-                       });
+                       } else {
+                               $client->enqueue(new Request("GET", $url), function($res) use($tgz, $pkg, $ver) {
+                                       $res->getBody()->toStream(fopen($tgz, "w"));
+                                       printf("%s\t%s\t%s\n", $pkg, $ver, $tgz);
+                                       return true;
+                               });
+                       }
                }
        }
 }