I have following Symfony Process which calls a standard git clone
command and writes the output in real-time:
$process = new Process(
[
'git',
'clone',
self::REPOSITORY_URL . $project . '.git',
$destinationPath
]
);
$cli = $this->cli;
$process->run(static function ($type, $buffer) use ($cli) {
if(Process::ERR === $type) {
$cli->error($buffer);
} else {
$cli->print($buffer);
}
});
What I get is the output Cloning into '/my/projects/project'...
, but formatted as an error.
I was able to pinpoint, that $type
always has the value 'err'
, even during non-error output.
I had this problem before, when I used $process->start()
first. Apparently, the process was not considered as finished, therefore I could solve it with $process->wait()
. But I didn't get the output in real-time, thus the usage of $process->run()
now. I feel like there might be a way to work with wait()
again, but I'm not sure how.