From 541429aabda3da50f7698d0514b9d2735661d1da Mon Sep 17 00:00:00 2001 From: dzaitsev Date: Wed, 21 May 2025 18:42:55 +0300 Subject: [PATCH] added retention script for gdrive --- build/gdrive_retention.ps1 | 98 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 build/gdrive_retention.ps1 diff --git a/build/gdrive_retention.ps1 b/build/gdrive_retention.ps1 new file mode 100644 index 0000000..2e9c428 --- /dev/null +++ b/build/gdrive_retention.ps1 @@ -0,0 +1,98 @@ +# Configuration +$rcloneRemote = "AzaionGoogleDrive:AzaionSuiteBuilds" + +function Write-Header($text) { + Write-Host "`n=== $text ===`n" -ForegroundColor Cyan +} + +function Write-Info($text) { + Write-Host "[INFO] $text" -ForegroundColor Green +} + +function Write-WarningMsg($text) { + Write-Host "[WARNING] $text" -ForegroundColor Yellow +} + +function Write-ErrorMsg($text) { + Write-Host "[ERROR] $text" -ForegroundColor Red +} + +Write-Header "Starting cleanup of older Full and Iterative installers on Google Drive" + +Write-Info "Listing all files in: $rcloneRemote" +$allFilesRaw = rclone lsf --files-only $rcloneRemote +$allFiles = $allFilesRaw -split "`n" | Where-Object { $_ -ne "" } +if ($allFiles.Count -eq 0) { + Write-WarningMsg "No files found in the remote folder." + exit 0 +} +Write-Info "Files found on Google Drive:" +foreach ($file in $allFiles) { + Write-Host " $file" +} + +# --- Full Installers --- +Write-Header "Checking for old Full installers (AzaionSuite.Full.*.zip)" +$fullFiles = $allFiles | Where-Object { $_ -like "AzaionSuite.Full.*.zip" } | Sort-Object -Descending + +if ($fullFiles.Count -eq 0) { + Write-WarningMsg "No Full installer files found." +} else { + Write-Info "Matching Full installer files:" + foreach ($file in $fullFiles) { + Write-Host " $file" + } + + if ($fullFiles.Count -le 5) { + Write-Info "Less than or equal to 5 Full installers found — nothing to delete." + } else { + $fullToDelete = $fullFiles | Select-Object -Skip 5 + Write-WarningMsg "Full installers to delete:" + foreach ($file in $fullToDelete) { + Write-Host " $file" + } + + foreach ($file in $fullToDelete) { + $res = rclone deletefile "$rcloneRemote/$file" 2>&1 + if ($LASTEXITCODE -eq 0) { + Write-Info "Deleted Full installer: $file" + } else { + Write-ErrorMsg "Failed to delete Full installer: $file. Error: $res" + } + } + } +} + +# --- Iterative Installers --- +Write-Header "Checking for old Iterative installers (AzaionSuite.Iterative.*.exe)" +$iterativeFiles = $allFiles | Where-Object { $_ -like "AzaionSuite.Iterative.*.exe" } | Sort-Object -Descending + +if ($iterativeFiles.Count -eq 0) { + Write-WarningMsg "No Iterative installer files found." +} else { + Write-Info "Matching Iterative installer files:" + foreach ($file in $iterativeFiles) { + Write-Host " $file" + } + + if ($iterativeFiles.Count -le 5) { + Write-Info "Less than or equal to 5 Iterative installers found — nothing to delete." + } else { + $iterativeToDelete = $iterativeFiles | Select-Object -Skip 5 + Write-WarningMsg "Iterative installers to delete:" + foreach ($file in $iterativeToDelete) { + Write-Host " $file" + } + + foreach ($file in $iterativeToDelete) { + $res = rclone deletefile "$rcloneRemote/$file" 2>&1 + if ($LASTEXITCODE -eq 0) { + Write-Info "Deleted Iterative installer: $file" + } else { + Write-ErrorMsg "Failed to delete Iterative installer: $file. Error: $res" + } + } + } +} + +Write-Header "Cleanup script completed"