Make install script idempotent: treat already-up-to-date as success

winget exit code -1978335189 (no applicable update) is now handled
as a non-error for both Firefox and other packages. Summary shows
"Deja a jour" in green instead of failing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-24 11:25:30 +02:00
parent 0071e3697d
commit 92a14fbc04
+14 -2
View File
@@ -6,6 +6,9 @@ param()
$ErrorActionPreference = "Continue"
# winget exit code: package already installed and already at latest version
$WingetExitNoUpdateAvailable = -1978335189
function Initialize-Winget {
if (Get-Command winget -ErrorAction SilentlyContinue) {
return
@@ -101,11 +104,16 @@ function Install-FirefoxEsr {
$Process = Start-Process -FilePath "winget" -ArgumentList $Arguments -NoNewWindow -Wait -PassThru
if ($Process.ExitCode -eq $WingetExitNoUpdateAvailable) {
Write-Host "Firefox ESR is already up to date." -ForegroundColor Green
return
}
if ($Process.ExitCode -ne 0) {
throw "Firefox ESR installation failed. winget exit code: $($Process.ExitCode)"
}
Write-Host "Firefox ESR installed or already present." -ForegroundColor Green
Write-Host "Firefox ESR installed or updated." -ForegroundColor Green
}
}
@@ -435,6 +443,10 @@ foreach ($logiciel in $logicielsAInstaller) {
Write-Host "OK $($logiciel.Nom) installe avec succes" -ForegroundColor Green
$reussites++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Succes"}
} elseif ($process.ExitCode -eq $WingetExitNoUpdateAvailable) {
Write-Host "OK $($logiciel.Nom) deja a jour" -ForegroundColor Green
$reussites++
$resultats += @{Logiciel = $logiciel.Nom; Statut = "Deja a jour"}
} else {
Write-Host "ERREUR Echec de l'installation de $($logiciel.Nom) (Code: $($process.ExitCode))" -ForegroundColor Red
$echecs++
@@ -454,7 +466,7 @@ Write-Host "===========================================================" -Foregr
Write-Host ""
foreach ($resultat in $resultats) {
if ($resultat.Statut -eq "Succes") {
if ($resultat.Statut -eq "Succes" -or $resultat.Statut -eq "Deja a jour") {
Write-Host "[OK] $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Green
} else {
Write-Host "[X] $($resultat.Logiciel): $($resultat.Statut)" -ForegroundColor Red