mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 08:16:31 +00:00
another fix for retention script
This commit is contained in:
+19
-20
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user