From 72e9c8462627872ff03f7605decdd91d095740f0 Mon Sep 17 00:00:00 2001 From: Mehran Rasulian Date: Sat, 1 Mar 2025 01:45:08 +0400 Subject: [PATCH 1/5] add information output --- app/Services/Forge/Pipeline/DestroySite.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/Services/Forge/Pipeline/DestroySite.php b/app/Services/Forge/Pipeline/DestroySite.php index 66ff1a1..3e85828 100644 --- a/app/Services/Forge/Pipeline/DestroySite.php +++ b/app/Services/Forge/Pipeline/DestroySite.php @@ -23,6 +23,8 @@ class DestroySite public function __invoke(ForgeService $service, Closure $next) { + $this->information('Processing site deletion.'); + $service->site->delete(); return $next($service); From 1a2c87b917094b6878661389bf027525cdfd04e2 Mon Sep 17 00:00:00 2001 From: Mehran Rasulian Date: Mon, 3 Mar 2025 10:36:55 +0400 Subject: [PATCH 2/5] use proper username for creating the task scheduler --- app/Services/Forge/Pipeline/EnsureJobScheduled.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/Services/Forge/Pipeline/EnsureJobScheduled.php b/app/Services/Forge/Pipeline/EnsureJobScheduled.php index 2cc40d2..387a968 100644 --- a/app/Services/Forge/Pipeline/EnsureJobScheduled.php +++ b/app/Services/Forge/Pipeline/EnsureJobScheduled.php @@ -32,7 +32,7 @@ public function __invoke(ForgeService $service, Closure $next) private function setupJobIfRequired(ForgeService $service): void { - $command = $this->buildScheduledJobCommand($service->site->name); + $command = $this->buildScheduledJobCommand($service->site->username, $service->site->name); foreach ($service->forge->jobs($service->server->id) as $job) { if ($job->command === $command) { @@ -50,8 +50,8 @@ private function setupJobIfRequired(ForgeService $service): void ]); } - protected function buildScheduledJobCommand(string $domain): string + protected function buildScheduledJobCommand(string $username, string $domain): string { - return sprintf('php /home/forge/%s/artisan schedule:run', $domain); + return sprintf('php /home/%s/%s/artisan schedule:run', $username, $domain); } } From b8ad13ac749fed2ed7e602073ae806fb57795320 Mon Sep 17 00:00:00 2001 From: Mehran Rasulian Date: Mon, 3 Mar 2025 10:41:29 +0400 Subject: [PATCH 3/5] add the task scheduler removal back to the teardown command --- app/Commands/TearDownCommand.php | 2 + .../Forge/Pipeline/RemoveTaskScheduler.php | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 app/Services/Forge/Pipeline/RemoveTaskScheduler.php diff --git a/app/Commands/TearDownCommand.php b/app/Commands/TearDownCommand.php index 083bda6..71333a9 100644 --- a/app/Commands/TearDownCommand.php +++ b/app/Commands/TearDownCommand.php @@ -21,6 +21,7 @@ use App\Services\Forge\Pipeline\RemoveDatabaseUser; use App\Services\Forge\Pipeline\RemoveExistingDeployKey; use App\Services\Forge\Pipeline\RemoveInertiaSupport; +use App\Services\Forge\Pipeline\RemoveTaskScheduler; use App\Services\Forge\Pipeline\RunOptionalCommands; use App\Traits\Outputifier; use Illuminate\Support\Facades\Pipeline; @@ -45,6 +46,7 @@ public function handle(ForgeService $service): void RemoveDatabaseUser::class, RemoveExistingDeployKey::class, RemoveDaemons::class, + RemoveTaskScheduler::class, DestroySite::class, ]) ->then(fn () => $this->success('Environment teardown successful! All provisioned resources have been removed.')); diff --git a/app/Services/Forge/Pipeline/RemoveTaskScheduler.php b/app/Services/Forge/Pipeline/RemoveTaskScheduler.php new file mode 100644 index 0000000..adfc325 --- /dev/null +++ b/app/Services/Forge/Pipeline/RemoveTaskScheduler.php @@ -0,0 +1,39 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace App\Services\Forge\Pipeline; + +use App\Services\Forge\ForgeService; +use App\Traits\Outputifier; +use Closure; + +class RemoveTaskScheduler +{ + use Outputifier; + + public function __invoke(ForgeService $service, Closure $next) + { + foreach ($service->forge->jobs($service->setting->server) as $job) { + if ($job->command === sprintf('php /home/%s/%s/artisan schedule:run', $service->site->username, $service->site->name)) { + $this->information('Removing scheduled command.'); + + $job->delete(); + } + } + + // Wait a few seconds to make sure the scheduler is fully removed before kicking off the next task + sleep(10); + + return $next($service); + } +} From 2fbcd612d6d461df1f0133138278099d6881b144 Mon Sep 17 00:00:00 2001 From: Mehran Rasulian Date: Mon, 3 Mar 2025 11:28:28 +0400 Subject: [PATCH 4/5] WIP rename app --- composer.json | 2 +- config/app.php | 2 +- harbor => harbor2 | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename harbor => harbor2 (100%) diff --git a/composer.json b/composer.json index 0b2c7f2..d664046 100644 --- a/composer.json +++ b/composer.json @@ -52,5 +52,5 @@ }, "minimum-stability": "stable", "prefer-stable": true, - "bin": ["harbor"] + "bin": ["harbor2"] } diff --git a/config/app.php b/config/app.php index 08ad7c7..1dc0282 100644 --- a/config/app.php +++ b/config/app.php @@ -13,7 +13,7 @@ | */ - 'name' => 'Harbor', + 'name' => 'Harbor2', /* |-------------------------------------------------------------------------- diff --git a/harbor b/harbor2 similarity index 100% rename from harbor rename to harbor2 From 288d81406d4f99f1fed4cc70ac110e6671245d86 Mon Sep 17 00:00:00 2001 From: Mehran Rasulian Date: Mon, 3 Mar 2025 11:29:28 +0400 Subject: [PATCH 5/5] rename app to Harbor --- composer.json | 2 +- config/app.php | 2 +- harbor2 => harbor | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename harbor2 => harbor (100%) diff --git a/composer.json b/composer.json index d664046..0b2c7f2 100644 --- a/composer.json +++ b/composer.json @@ -52,5 +52,5 @@ }, "minimum-stability": "stable", "prefer-stable": true, - "bin": ["harbor2"] + "bin": ["harbor"] } diff --git a/config/app.php b/config/app.php index 1dc0282..08ad7c7 100644 --- a/config/app.php +++ b/config/app.php @@ -13,7 +13,7 @@ | */ - 'name' => 'Harbor2', + 'name' => 'Harbor', /* |-------------------------------------------------------------------------- diff --git a/harbor2 b/harbor similarity index 100% rename from harbor2 rename to harbor