From 5dd63e568c9e8cae502ace65c964c5eb1bf77095 Mon Sep 17 00:00:00 2001 From: Prince John Santillan Date: Fri, 26 Apr 2024 10:27:35 +0800 Subject: [PATCH 1/3] module input optional --- src/Console/Commands/Modularize.php | 53 +++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/src/Console/Commands/Modularize.php b/src/Console/Commands/Modularize.php index 713623a..219f244 100644 --- a/src/Console/Commands/Modularize.php +++ b/src/Console/Commands/Modularize.php @@ -4,36 +4,61 @@ use InterNACHI\Modular\Support\ModuleConfig; use InterNACHI\Modular\Support\ModuleRegistry; +use function Laravel\Prompts\select; use Symfony\Component\Console\Exception\InvalidOptionException; use Symfony\Component\Console\Input\InputOption; trait Modularize { + protected ?string $module = null; + + private function moduleRegistry(): ModuleRegistry + { + return $this->getLaravel()->make(ModuleRegistry::class); + } + + public function handle() + { + /** @var false|string|null $module */ + $module = $this->option('module'); + + if ($module !== false) { + $modules = $this->moduleRegistry()->modules()->keys()->mapWithKeys(fn($module) => [$module => $module])->toArray(); + + $this->module = (null === $module || $module === '') + ? (string) select('Which module?', $modules) + : $module; + } + + parent::handle(); + } + protected function module(): ?ModuleConfig { - if ($name = $this->option('module')) { - $registry = $this->getLaravel()->make(ModuleRegistry::class); - - if ($module = $registry->module($name)) { - return $module; - } - - throw new InvalidOptionException(sprintf('The "%s" module does not exist.', $name)); + if ($this->module === null) { + return null; + } + + $config = $this->moduleRegistry()->module($this->module); + + if ($config === null) { + throw new InvalidOptionException(sprintf('The "%s" module does not exist.', $this->module)); } - - return null; + + return $config; } - + protected function configure() { parent::configure(); - + $this->getDefinition()->addOption( new InputOption( '--module', null, - InputOption::VALUE_REQUIRED, - 'Run inside an application module' + InputOption::VALUE_OPTIONAL, + 'Run inside an application module', + false ) ); } From 4656bef79f3d37894eff3988762aa77c41caa7ac Mon Sep 17 00:00:00 2001 From: Prince John Santillan Date: Fri, 26 Apr 2024 10:31:13 +0800 Subject: [PATCH 2/3] simplify --- src/Console/Commands/Modularize.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Console/Commands/Modularize.php b/src/Console/Commands/Modularize.php index 219f244..1e32b4c 100644 --- a/src/Console/Commands/Modularize.php +++ b/src/Console/Commands/Modularize.php @@ -23,7 +23,7 @@ public function handle() $module = $this->option('module'); if ($module !== false) { - $modules = $this->moduleRegistry()->modules()->keys()->mapWithKeys(fn($module) => [$module => $module])->toArray(); + $modules = $this->moduleRegistry()->modules()->keys(); $this->module = (null === $module || $module === '') ? (string) select('Which module?', $modules) From 4cb8bda26f2520f6211a2ad20a8e001154ce9a1d Mon Sep 17 00:00:00 2001 From: Prince John Santillan <60916966+princejohnsantillan@users.noreply.github.com> Date: Fri, 10 May 2024 21:16:59 +0800 Subject: [PATCH 3/3] Update src/Console/Commands/Modularize.php Co-authored-by: Andy Hinkle --- src/Console/Commands/Modularize.php | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/src/Console/Commands/Modularize.php b/src/Console/Commands/Modularize.php index 1e32b4c..63662e5 100644 --- a/src/Console/Commands/Modularize.php +++ b/src/Console/Commands/Modularize.php @@ -19,15 +19,10 @@ private function moduleRegistry(): ModuleRegistry public function handle() { - /** @var false|string|null $module */ - $module = $this->option('module'); - - if ($module !== false) { + if ($this->input->hasParameterOption('--module')) { $modules = $this->moduleRegistry()->modules()->keys(); - $this->module = (null === $module || $module === '') - ? (string) select('Which module?', $modules) - : $module; + $this->module = $this->option('module') ?: (string) select('Which module?', $modules); } parent::handle();