]> Raphaƫl G. Git Repositories - packbundle/blobdiff - Command/RangeCommand.php
Use bundle alias
[packbundle] / Command / RangeCommand.php
index b5586de0d6c4de8256c7794c6dff842140912e3a..059713825f9dee11b696d853a88b269017e4f908 100644 (file)
 
 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