X-Git-Url: https://git.rapsys.eu/packbundle/blobdiff_plain/fedff27fa8b2f164d11e5fa218118f6bc10a57e4..7958c95fb124a29b4970ef8ec72f78ee4f5a71ea:/Command/RangeCommand.php diff --git a/Command/RangeCommand.php b/Command/RangeCommand.php index b5586de..0597138 100644 --- a/Command/RangeCommand.php +++ b/Command/RangeCommand.php @@ -11,12 +11,12 @@ namespace Rapsys\PackBundle\Command; +use Rapsys\PackBundle\Command; + use Symfony\Component\Console\Input\InputArgument; use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; -use Rapsys\PackBundle\Command; - /** * {@inheritdoc} * @@ -28,19 +28,19 @@ class RangeCommand extends Command { * * Shown with bin/console list */ - protected string $description = 'Outputs a shuffled printable characters range'; + protected string $description = 'Generates a shuffled printable characters range'; /** * Set help * * Shown with bin/console --help rapsyspack:range */ - protected string $help = 'This command outputs a shuffled printable characters range'; + protected string $help = 'This command generates a shuffled printable characters range'; /** * {@inheritdoc} */ - public function __construct(protected string $file = '.env.local', protected ?string $name = null) { + public function __construct(protected string $file, protected ?string $name = null) { //Call parent constructor parent::__construct($this->name); @@ -77,6 +77,9 @@ class RangeCommand extends Command { $shuffles = array_merge($shuffles, $slices); } while (!empty($ranges)); + //Set string + $string = 'RAPSYSPACK_RANGE="'.strtr(implode($shuffles), ['\\' => '\\\\', '"' => '\\"', '$' => '\\$']).'"'; + //With writeable file if (is_file($file = $input->getArgument('file')) && is_writeable($file)) { //Get file content @@ -88,16 +91,14 @@ class RangeCommand extends Command { return self::FAILURE; } - //Set string - $string = 'RAPSYSPACK_RANGE="'.strtr(implode($shuffles), ['\\' => '\\\\', '"' => '\\"', '$' => '\\$']).'"'; - //With match if (preg_match('/^RAPSYSPACK_RANGE=.*$/m', $content, $matches, PREG_OFFSET_CAPTURE)) { //Replace matches $content = preg_replace('/^(RAPSYSPACK_RANGE=.*)$/m', '#$1'."\n".strtr($string, ['\\' => '\\\\', '\\$' => '\\\\$']), $content); //Without match } else { - $content .= "\n".$string; + //Append string + $content .= (strlen($content)?"\n\n":'').'###> '.$this->bundle.' ###'."\n".$string."\n".'###< '.$this->bundle.' ###'; } //Write file content @@ -114,13 +115,13 @@ class RangeCommand extends Command { //Without writeable file } else { //Print instruction - echo '# Set in '.$file."\n"; + echo '# Add to '.$file."\n"; //Print rapsys pack range variable - echo 'RAPSYSPACK_RANGE='; + echo '###> '.$this->bundle.' ###'."\n".$string."\n".'###< '.$this->bundle.' ###'; - //Print shuffled range - var_export(implode($shuffles)); + //Add trailing line + echo "\n"; } //Return success