public function __construct(Process $process)
 {
     if ($process->isSuccessful()) {
         throw new InvalidArgumentException('Expected a failed process, but the given process was successful.');
     }
     $error = sprintf('The command "%s" failed.', $process->getInput());
     if (!$process->isOutputDisabled()) {
         $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput());
     }
     parent::__construct($error);
     $this->process = $process;
 }
 public function __construct(Process $process, \Throwable $previous = null)
 {
     parent::__construct($process->getErrorOutput(), $process->getExitCode(), $previous);
     $this->commandLine = $process->getCommandLine();
 }