+++ /dev/null
-#!/usr/bin/php
-<?php
-
-ini_set("display_errors", 0);
-ini_set("log_errors", 1);
-
-$procs = [];
-
-function check(&$procs) {
- foreach ($procs as $dir => list($prc, $fds, $pkg, $src, $dst)) {
- $status = proc_get_status($prc);
- if (!$status["running"]) {
- array_map("fclose", $fds);
- proc_close($prc);
- if ($status["exitcode"] || !is_file("$dst/$dir.ext.phar")) {
- touch("$src.skip");
- } else {
- printf("%s\t%s.ext.phar\n", $pkg, $dir);
- }
- system("rm -r $src.tgz $src");
- unset($procs[$dir]);
- }
- }
- return count($procs);
-}
-
-while (!feof(STDIN)) {
- if (strlen($line = rtrim(fgets(STDIN)))) {
- if (list($pkg, $dir) = explode("\t", $line)) {
- $src = __DIR__."/../build/$dir";
- $dst = __DIR__."/../public/phars/$pkg";
-
- if (!is_dir($dst) && !mkdir($dst, 0777, true)) {
- continue;
- }
-
- $prc = proc_open(__DIR__."/../vendor/bin/pharext -qps $src -zZd $dst 2>&1", [
- ["pipe","r"],STDERR
- ], $fds
- );
- $procs[$dir] = [$prc, $fds, $pkg, $src, $dst];
- check($procs);
- }
- }
-}
-
-while (check($procs)) {
- usleep(1000);
-}