
| Current Path : /var/www/html/rocksensor1/web/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/rocksensor1/web/core/tests/Drupal/Tests/Composer/Plugin/Scaffold/ExecTrait.php |
<?php
declare(strict_types=1);
namespace Drupal\Tests\Composer\Plugin\Scaffold;
use Symfony\Component\Process\Process;
/**
* Convenience class for creating fixtures.
*/
trait ExecTrait {
/**
* Runs an arbitrary command.
*
* @param string $cmd
* The command to execute (escaped as required)
* @param string $cwd
* The current working directory to run the command from.
* @param array $env
* Environment variables to define for the subprocess.
*
* @return string
* Standard output from the command
*/
protected function mustExec($cmd, $cwd, array $env = []): string {
$process = Process::fromShellCommandline($cmd, $cwd, $env + ['PATH' => getenv('PATH'), 'HOME' => getenv('HOME')]);
$process->setTimeout(300)->setIdleTimeout(300)->run();
$exitCode = $process->getExitCode();
if (0 != $exitCode) {
throw new \RuntimeException("Exit code: {$exitCode}\n\n" . $process->getErrorOutput() . "\n\n" . $process->getOutput());
}
return $process->getOutput();
}
}