1
0
Fork 0
composer/src/Composer/Util/ProcessExecutor.php

52 lines
1.2 KiB
PHP
Raw Normal View History

<?php
/*
* This file is part of Composer.
*
* (c) Nils Adermann <naderman@naderman.de>
* Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Composer\Util;
use Symfony\Component\Process\Process;
/**
* @author Robert Schönthal <seroscho@googlemail.com>
*/
class ProcessExecutor
{
/**
* runs a process on the commandline
*
* @param $command the command to execute
* @param null $output the output will be written into this var if passed
* @return int statuscode
*/
public function execute($command, &$output = null)
{
2012-01-22 19:08:20 +00:00
$captureOutput = count(func_get_args()) > 1;
$process = new Process($command);
2012-01-22 19:08:20 +00:00
$process->run(function($type, $buffer) use ($captureOutput) {
if ($captureOutput) {
return;
}
echo $buffer;
});
2012-01-22 19:08:20 +00:00
if ($captureOutput) {
$output = $process->getOutput();
}
return $process->getExitCode();
}
2012-01-22 19:08:20 +00:00
public function splitLines($output)
{
return ((string) $output === '') ? array() : preg_split('{\r?\n}', $output);
}
}