first commit
This commit is contained in:
25
vendor/symfony/console/Messenger/RunCommandContext.php
vendored
Normal file
25
vendor/symfony/console/Messenger/RunCommandContext.php
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Console\Messenger;
|
||||
|
||||
/**
|
||||
* @author Kevin Bond <kevinbond@gmail.com>
|
||||
*/
|
||||
final class RunCommandContext
|
||||
{
|
||||
public function __construct(
|
||||
public readonly RunCommandMessage $message,
|
||||
public readonly int $exitCode,
|
||||
public readonly string $output,
|
||||
) {
|
||||
}
|
||||
}
|
36
vendor/symfony/console/Messenger/RunCommandMessage.php
vendored
Normal file
36
vendor/symfony/console/Messenger/RunCommandMessage.php
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Console\Messenger;
|
||||
|
||||
use Symfony\Component\Console\Exception\RunCommandFailedException;
|
||||
|
||||
/**
|
||||
* @author Kevin Bond <kevinbond@gmail.com>
|
||||
*/
|
||||
class RunCommandMessage implements \Stringable
|
||||
{
|
||||
/**
|
||||
* @param bool $throwOnFailure If the command has a non-zero exit code, throw {@see RunCommandFailedException}
|
||||
* @param bool $catchExceptions @see Application::setCatchExceptions()
|
||||
*/
|
||||
public function __construct(
|
||||
public readonly string $input,
|
||||
public readonly bool $throwOnFailure = true,
|
||||
public readonly bool $catchExceptions = false,
|
||||
) {
|
||||
}
|
||||
|
||||
public function __toString(): string
|
||||
{
|
||||
return $this->input;
|
||||
}
|
||||
}
|
48
vendor/symfony/console/Messenger/RunCommandMessageHandler.php
vendored
Normal file
48
vendor/symfony/console/Messenger/RunCommandMessageHandler.php
vendored
Normal file
@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the Symfony package.
|
||||
*
|
||||
* (c) Fabien Potencier <fabien@symfony.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Symfony\Component\Console\Messenger;
|
||||
|
||||
use Symfony\Component\Console\Application;
|
||||
use Symfony\Component\Console\Command\Command;
|
||||
use Symfony\Component\Console\Exception\RunCommandFailedException;
|
||||
use Symfony\Component\Console\Input\StringInput;
|
||||
use Symfony\Component\Console\Output\BufferedOutput;
|
||||
|
||||
/**
|
||||
* @author Kevin Bond <kevinbond@gmail.com>
|
||||
*/
|
||||
final class RunCommandMessageHandler
|
||||
{
|
||||
public function __construct(private readonly Application $application)
|
||||
{
|
||||
}
|
||||
|
||||
public function __invoke(RunCommandMessage $message): RunCommandContext
|
||||
{
|
||||
$input = new StringInput($message->input);
|
||||
$output = new BufferedOutput();
|
||||
|
||||
$this->application->setCatchExceptions($message->catchExceptions);
|
||||
|
||||
try {
|
||||
$exitCode = $this->application->run($input, $output);
|
||||
} catch (\Throwable $e) {
|
||||
throw new RunCommandFailedException($e, new RunCommandContext($message, Command::FAILURE, $output->fetch()));
|
||||
}
|
||||
|
||||
if ($message->throwOnFailure && Command::SUCCESS !== $exitCode) {
|
||||
throw new RunCommandFailedException(sprintf('Command "%s" exited with code "%s".', $message->input, $exitCode), new RunCommandContext($message, $exitCode, $output->fetch()));
|
||||
}
|
||||
|
||||
return new RunCommandContext($message, $exitCode, $output->fetch());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user