File tree Expand file tree Collapse file tree 1 file changed +18
-2
lines changed
Expand file tree Collapse file tree 1 file changed +18
-2
lines changed Original file line number Diff line number Diff line change @@ -321,9 +321,25 @@ try {
321321 if ($p) { $p.WaitForExit() }
322322} catch {}
323323
324+ Write-Host "Staging new binary..."
325+ $TempExe = "$TargetExe.tmp"
326+ Copy-Item -Path $NewExe -Destination $TempExe -Force
327+
324328Write-Host "Swapping binaries..."
325- Move-Item -Path $TargetExe -Destination $BackupExe -Force -ErrorAction SilentlyContinue
326- Move-Item -Path $NewExe -Destination $TargetExe -Force
329+ try {
330+ Move-Item -Path $TargetExe -Destination $BackupExe -Force -ErrorAction SilentlyContinue
331+ Move-Item -Path $TempExe -Destination $TargetExe -Force
332+ Remove-Item -Path $BackupExe -Force -ErrorAction SilentlyContinue
333+ } catch {
334+ Write-Host "Swap failed, attempting rollback..."
335+ if (Test-Path $BackupExe) {
336+ Move-Item -Path $BackupExe -Destination $TargetExe -Force -ErrorAction SilentlyContinue
337+ }
338+ if (Test-Path $TempExe) {
339+ Remove-Item -Path $TempExe -Force -ErrorAction SilentlyContinue
340+ }
341+ throw
342+ }
327343
328344Write-Host "Starting new version..."
329345Start-Process -FilePath $TargetExe -ArgumentList "--version"
You can’t perform that action at this time.
0 commit comments