Pull merge.
[yaffs-website] / vendor / symfony / process / Exception / ProcessFailedException.php
1 <?php
2
3 /*
4  * This file is part of the Symfony package.
5  *
6  * (c) Fabien Potencier <fabien@symfony.com>
7  *
8  * For the full copyright and license information, please view the LICENSE
9  * file that was distributed with this source code.
10  */
11
12 namespace Symfony\Component\Process\Exception;
13
14 use Symfony\Component\Process\Process;
15
16 /**
17  * Exception for failed processes.
18  *
19  * @author Johannes M. Schmitt <schmittjoh@gmail.com>
20  */
21 class ProcessFailedException extends RuntimeException
22 {
23     private $process;
24
25     public function __construct(Process $process)
26     {
27         if ($process->isSuccessful()) {
28             throw new InvalidArgumentException('Expected a failed process, but the given process was successful.');
29         }
30
31         $error = sprintf('The command "%s" failed.'."\n\nExit Code: %s(%s)\n\nWorking directory: %s",
32             $process->getCommandLine(),
33             $process->getExitCode(),
34             $process->getExitCodeText(),
35             $process->getWorkingDirectory()
36         );
37
38         if (!$process->isOutputDisabled()) {
39             $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s",
40                 $process->getOutput(),
41                 $process->getErrorOutput()
42             );
43         }
44
45         parent::__construct($error);
46
47         $this->process = $process;
48     }
49
50     public function getProcess()
51     {
52         return $this->process;
53     }
54 }