From 17502972258a071ed372e06432f19525cc7be946 Mon Sep 17 00:00:00 2001 From: lukinovec Date: Wed, 8 Jan 2025 10:13:53 +0100 Subject: [PATCH] Use StringInput instead of ArgvInput so that tenants:run accepts args properly --- src/Commands/Run.php | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/src/Commands/Run.php b/src/Commands/Run.php index afc9871a..205e5b49 100644 --- a/src/Commands/Run.php +++ b/src/Commands/Run.php @@ -7,8 +7,8 @@ namespace Stancl\Tenancy\Commands; use Illuminate\Console\Command; use Illuminate\Contracts\Console\Kernel; use Stancl\Tenancy\Concerns\HasTenantOptions; -use Symfony\Component\Console\Input\ArgvInput; use Symfony\Component\Console\Output\ConsoleOutput; +use Symfony\Component\Console\Input\StringInput; class Run extends Command { @@ -21,30 +21,16 @@ class Run extends Command public function handle(): int { - $argvInput = $this->argvInput(); + $stringInput = (new StringInput($this->argument('commandname'))); - tenancy()->runForMultiple($this->getTenants(), function ($tenant) use ($argvInput) { + tenancy()->runForMultiple($this->getTenants(), function ($tenant) use ($stringInput) { $this->components->info("Tenant: {$tenant->getTenantKey()}"); $this->getLaravel() ->make(Kernel::class) - ->handle($argvInput, new ConsoleOutput); + ->handle($stringInput, new ConsoleOutput); }); return 0; } - - protected function argvInput(): ArgvInput - { - /** @var string $commandName */ - $commandName = $this->argument('commandname'); - - // Convert string command to array - $subCommand = explode(' ', $commandName); - - // Add "artisan" as first parameter because ArgvInput expects "artisan" as first parameter and later removes it - array_unshift($subCommand, 'artisan'); - - return new ArgvInput($subCommand); - } }