mirror of
https://github.com/azaion/annotations.git
synced 2026-04-23 02:06:30 +00:00
added retention script for gdrive
This commit is contained in:
@@ -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"
|
||||
Reference in New Issue
Block a user