-ini_set("display_errors", 0);
-ini_set("log_errors", 1);
-
-use http\Url;
-use http\Client;
-use http\Client\Request;
-
-$procs = [];
-$client = new Client;
-$client->setOptions([
- "timetout" => 60,
- "connecttimeout" => 6
-]);
-
-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 (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"));
- printf("%s\t%s\t%s\n", $pkg, $ver, $tgz);
- return true;
- });
- }
- }