first commit

This commit is contained in:
Sampanna Rimal
2024-08-27 17:48:06 +05:45
commit 53c0140f58
10839 changed files with 1125847 additions and 0 deletions

View 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,
) {
}
}

View 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;
}
}

View 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());
}
}