another fix for retention script

This commit is contained in:
Denys Zaitsev
2025-06-17 12:53:01 +03:00
parent fe5816bc9e
commit 3277e8fa32
+19 -20
View File
@@ -18,12 +18,18 @@ function Write-ErrorMsg($text) {
Write-Host "[ERROR] $text" -ForegroundColor Red Write-Host "[ERROR] $text" -ForegroundColor Red
} }
function Get-BuildNumber($filename) {
if ($filename -match "\.(\d+)\.(zip|exe)$") {
return [int]$matches[1]
}
return 0
}
Write-Header "Starting cleanup of older Full and Iterative installers on Google Drive" Write-Header "Starting cleanup of older Full and Iterative installers on Google Drive"
Write-Info "Listing all files in: $rcloneRemote" Write-Info "Listing all files in: $rcloneRemote"
$allFilesRaw = & $rclone lsf --files-only $rcloneRemote $allFilesRaw = & $rclone lsf --files-only $rcloneRemote
# Check if the command succeeded
if ($LASTEXITCODE -ne 0) { if ($LASTEXITCODE -ne 0) {
Write-ErrorMsg "Failed to list files from Google Drive using rclone." Write-ErrorMsg "Failed to list files from Google Drive using rclone."
exit 1 exit 1
@@ -35,31 +41,27 @@ if ($allFiles.Count -eq 0) {
Write-WarningMsg "No files found in the remote folder." Write-WarningMsg "No files found in the remote folder."
exit 0 exit 0
} }
Write-Info "Files found on Google Drive:" Write-Info "Files found on Google Drive:"
foreach ($file in $allFiles) { $allFiles | ForEach-Object { Write-Host " $_" }
Write-Host " $file"
}
# --- Full Installers --- # --- Full Installers ---
Write-Header 'Checking for old Full installers (AzaionSuite.Full.*.zip)' Write-Header 'Checking for old Full installers (AzaionSuite.Full.*.zip)'
$fullFiles = $allFiles | Where-Object { $_ -like "AzaionSuite.Full.*.zip" } | Sort-Object -Descending $fullFiles = $allFiles | Where-Object { $_ -like "AzaionSuite.Full.*.zip" } |
Sort-Object { Get-BuildNumber $_ } -Descending
if ($fullFiles.Count -eq 0) { if ($fullFiles.Count -eq 0) {
Write-WarningMsg "No Full installer files found." Write-WarningMsg "No Full installer files found."
} else { } else {
Write-Info "Matching Full installer files:" Write-Info "Matching Full installer files:"
foreach ($file in $fullFiles) { $fullFiles | ForEach-Object { Write-Host " $_" }
Write-Host " $file"
}
if ($fullFiles.Count -le 5) { if ($fullFiles.Count -le 5) {
Write-Info "Less than or equal to 5 Full installers found — nothing to delete." Write-Info "5 or fewer Full installers found — nothing to delete."
} else { } else {
$fullToDelete = $fullFiles | Select-Object -Skip 5 $fullToDelete = $fullFiles | Select-Object -Skip 5
Write-WarningMsg "Full installers to delete:" Write-WarningMsg "Full installers to delete:"
foreach ($file in $fullToDelete) { $fullToDelete | ForEach-Object { Write-Host " $_" }
Write-Host " $file"
}
foreach ($file in $fullToDelete) { foreach ($file in $fullToDelete) {
$res = & $rclone deletefile "$rcloneRemote/$file" 2>&1 $res = & $rclone deletefile "$rcloneRemote/$file" 2>&1
@@ -74,24 +76,21 @@ if ($fullFiles.Count -eq 0) {
# --- Iterative Installers --- # --- Iterative Installers ---
Write-Header 'Checking for old Iterative installers (AzaionSuite.Iterative.*.exe)' Write-Header 'Checking for old Iterative installers (AzaionSuite.Iterative.*.exe)'
$iterativeFiles = $allFiles | Where-Object { $_ -like "AzaionSuite.Iterative.*.exe" } | Sort-Object -Descending $iterativeFiles = $allFiles | Where-Object { $_ -like "AzaionSuite.Iterative.*.exe" } |
Sort-Object { Get-BuildNumber $_ } -Descending
if ($iterativeFiles.Count -eq 0) { if ($iterativeFiles.Count -eq 0) {
Write-WarningMsg "No Iterative installer files found." Write-WarningMsg "No Iterative installer files found."
} else { } else {
Write-Info "Matching Iterative installer files:" Write-Info "Matching Iterative installer files:"
foreach ($file in $iterativeFiles) { $iterativeFiles | ForEach-Object { Write-Host " $_" }
Write-Host " $file"
}
if ($iterativeFiles.Count -le 5) { if ($iterativeFiles.Count -le 5) {
Write-Info "Less than or equal to 5 Iterative installers found — nothing to delete." Write-Info "5 or fewer Iterative installers found — nothing to delete."
} else { } else {
$iterativeToDelete = $iterativeFiles | Select-Object -Skip 5 $iterativeToDelete = $iterativeFiles | Select-Object -Skip 5
Write-WarningMsg "Iterative installers to delete:" Write-WarningMsg "Iterative installers to delete:"
foreach ($file in $iterativeToDelete) { $iterativeToDelete | ForEach-Object { Write-Host " $_" }
Write-Host " $file"
}
foreach ($file in $iterativeToDelete) { foreach ($file in $iterativeToDelete) {
$res = & $rclone deletefile "$rcloneRemote/$file" 2>&1 $res = & $rclone deletefile "$rcloneRemote/$file" 2>&1