Example #1
0
 /**
  * Exec multiple commands at once
  *
  * @param array<> $commands
  * @return vouid
  */
 public static function exec(array $commands)
 {
     foreach ($commands as $c) {
         Release::split('─');
         echo ' [exec] ' . $c . PHP_EOL;
         Release::split('─');
         $process = proc_open($c, array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'), 2 => array('pipe', 'w')), $pipes);
         if (is_resource($process)) {
             fclose($pipes[0]);
             while (!feof($pipes[1]) || !feof($pipes[2])) {
                 if ($out = fgets($pipes[1], 128)) {
                     echo ' │ ' . $out;
                 }
                 if ($err = fgets($pipes[2], 128)) {
                     echo ' ! ' . $err;
                 }
             }
             fclose($pipes[1]);
             fclose($pipes[2]);
             proc_close($process);
         }
     }
     Release::split('─');
 }