From be6c415a4e1b6f1553e0b57d11bb2938621b6d0d Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 10 May 2023 09:56:12 +0200 Subject: [PATCH] update bunny sync command --- app/Console/Commands/SyncBunny.php | 36 +++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/app/Console/Commands/SyncBunny.php b/app/Console/Commands/SyncBunny.php index 27d4a8b79..f9b53b57c 100644 --- a/app/Console/Commands/SyncBunny.php +++ b/app/Console/Commands/SyncBunny.php @@ -28,7 +28,7 @@ class SyncBunny extends Command */ public function handle() { - $bunny_cdn = "https://coolify-cdn.b-cdn.net/"; + $bunny_cdn = "https://coolify-cdn.b-cdn.net"; $bunny_cdn_path = "files"; $bunny_cdn_storage_name = "coolify-cdn"; @@ -36,6 +36,7 @@ class SyncBunny extends Command $compose_file = "docker-compose.yml"; $compose_file_prod = "docker-compose.prod.yml"; + $install_script = "install.sh"; $upgrade_script = "upgrade.sh"; $docker_install_script = "install-docker.sh"; $production_env = ".env.production"; @@ -50,29 +51,34 @@ class SyncBunny extends Command $file = fread($fileStream, filesize($file)); return PendingRequest::baseUrl('https://storage.bunnycdn.com')->withHeaders($headers)->withBody($file)->throw(); }); + PendingRequest::macro('purge', function ($url) { + $headers = [ + 'AccessKey' => env('BUNNY_API_KEY'), + 'Accept' => 'application/json', + ]; + return PendingRequest::withHeaders($headers)->post('https://api.bunny.net/purge', [ + "urls" => [$url], + ]); + }); try { Http::pool(fn (Pool $pool) => [ $pool->storage(file: "$parent_dir/$compose_file")->put("/$bunny_cdn_storage_name/$bunny_cdn_path/$compose_file"), $pool->storage(file: "$parent_dir/$compose_file_prod")->put("/$bunny_cdn_storage_name/$bunny_cdn_path/$compose_file_prod"), $pool->storage(file: "$parent_dir/$production_env")->put("/$bunny_cdn_storage_name/$bunny_cdn_path/$production_env"), $pool->storage(file: "$parent_dir/scripts/$upgrade_script")->put("/$bunny_cdn_storage_name/$bunny_cdn_path/$upgrade_script"), + $pool->storage(file: "$parent_dir/scripts/$install_script")->put("/$bunny_cdn_storage_name/$bunny_cdn_path/$install_script"), $pool->storage(file: "$parent_dir/scripts/$docker_install_script")->put("/$bunny_cdn_storage_name/$bunny_cdn_path/$docker_install_script"), ]); - - $res = Http::withHeaders([ - 'AccessKey' => env('BUNNY_API_KEY'), - 'Accept' => 'application/json', - ])->get('https://api.bunny.net/purge', [ - "url" => "$bunny_cdn/$bunny_cdn_path/$compose_file", - "url" => "$bunny_cdn/$bunny_cdn_path/$compose_file_prod", - "url" => "$bunny_cdn/$bunny_cdn_path/$upgrade_script", - "url" => "$bunny_cdn/$bunny_cdn_path/$production_env", - "url" => "$bunny_cdn/$bunny_cdn_path/$docker_install_script" + Http::pool(fn (Pool $pool) => [ + $pool->purge(url: "$bunny_cdn/$bunny_cdn_path/$compose_file"), + $pool->purge(url: "$bunny_cdn/$bunny_cdn_path/$compose_file_prod"), + $pool->purge(url: "$bunny_cdn/$bunny_cdn_path/$production_env"), + $pool->purge(url: "$bunny_cdn/$bunny_cdn_path/$upgrade_script"), + $pool->purge(url: "$bunny_cdn/$bunny_cdn_path/$install_script"), + $pool->purge(url: "$bunny_cdn/$bunny_cdn_path/$docker_install_script"), ]); - if ($res->ok()) { - echo "All files uploaded & purged...\n"; - return; - } + echo "All files uploaded & purged...\n"; + return; throw new \Exception("Something went wrong."); } catch (\Exception $e) { echo $e->getMessage();