forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			55 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | namespace Alchemy\Tests\BinaryDriver; | ||
|  | 
 | ||
|  | use Alchemy\BinaryDriver\ProcessBuilderFactory; | ||
|  | use LogicException; | ||
|  | use Symfony\Component\Process\Process; | ||
|  | use Symfony\Component\Process\ProcessBuilder; | ||
|  | 
 | ||
|  | class LTSProcessBuilder extends ProcessBuilder | ||
|  | { | ||
|  |     private $arguments; | ||
|  |     private $prefix; | ||
|  |     private $timeout; | ||
|  | 
 | ||
|  |     public function __construct(array $arguments = array()) | ||
|  |     { | ||
|  |         $this->arguments = $arguments; | ||
|  |         parent::__construct($arguments); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function setArguments(array $arguments) | ||
|  |     { | ||
|  |         $this->arguments = $arguments; | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function setPrefix($prefix) | ||
|  |     { | ||
|  |         $this->prefix = $prefix; | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function setTimeout($timeout) | ||
|  |     { | ||
|  |         $this->timeout = $timeout; | ||
|  | 
 | ||
|  |         return $this; | ||
|  |     } | ||
|  | 
 | ||
|  |     public function getProcess() | ||
|  |     { | ||
|  |         if (!$this->prefix && !count($this->arguments)) { | ||
|  |             throw new LogicException('You must add() command arguments before calling getProcess().'); | ||
|  |         } | ||
|  | 
 | ||
|  |         $args = $this->prefix ? array_merge(array($this->prefix), $this->arguments) : $this->arguments; | ||
|  |         $script = implode(' ', array_map('escapeshellarg', $args)); | ||
|  | 
 | ||
|  |         return new Process($script, null, null, null, $this->timeout); | ||
|  |     } | ||
|  | } |