wingetautoupdate/Winget-AutoUpdate/functions/Update-WAU.ps1

64 lines
2.7 KiB
PowerShell
Raw Normal View History

2022-03-14 13:55:02 +00:00
2022-03-26 21:27:11 +00:00
function Update-WAU {
2022-03-14 13:55:02 +00:00
#Send available update notification
$Title = $NotifLocale.local.outputs.output[2].title -f "Winget-AutoUpdate"
2022-03-26 21:27:11 +00:00
$Message = $NotifLocale.local.outputs.output[2].message -f $WAUCurrentVersion, $WAUAvailableVersion
2022-03-14 13:55:02 +00:00
$MessageType = "info"
$Balise = "Winget-AutoUpdate"
Start-NotifTask $Title $Message $MessageType $Balise
#Run WAU update
try{
#Force to create a zip file
$ZipFile = "$WorkingDir\WAU_update.zip"
New-Item $ZipFile -ItemType File -Force | Out-Null
#Download the zip
2022-03-27 10:20:33 +00:00
Write-Log "Downloading the GitHub Repository version $WAUAvailableVersion" "Cyan"
2022-03-26 21:27:11 +00:00
Invoke-RestMethod -Uri "https://github.com/Romanitho/Winget-AutoUpdate/archive/refs/tags/v$($WAUAvailableVersion).zip/" -OutFile $ZipFile
2022-03-14 13:55:02 +00:00
#Extract Zip File
2022-03-27 10:20:33 +00:00
Write-Log "Unzipping the WAU GitHub Repository" "Cyan"
2022-03-14 13:55:02 +00:00
$location = "$WorkingDir\WAU_update"
Expand-Archive -Path $ZipFile -DestinationPath $location -Force
Get-ChildItem -Path $location -Recurse | Unblock-File
2022-03-27 10:20:33 +00:00
Write-Log "Updating WAU" "Yellow"
2022-03-22 17:19:30 +00:00
$TempPath = (Resolve-Path "$location\*\Winget-AutoUpdate\")[0].Path
2022-03-26 15:02:00 +00:00
if ($TempPath){
Copy-Item -Path "$TempPath\*" -Destination "$WorkingDir\" -Exclude "icons" -Recurse -Force
}
2022-03-14 13:55:02 +00:00
2022-03-27 10:20:33 +00:00
#Remove update zip file and update temp folder
Write-Log "Done. Cleaning temp files" "Cyan"
2022-03-14 13:55:02 +00:00
Remove-Item -Path $ZipFile -Force -ErrorAction SilentlyContinue
Remove-Item -Path $location -Recurse -Force -ErrorAction SilentlyContinue
2022-03-27 10:20:33 +00:00
#Set new version to 'about.xml'
2022-03-14 13:55:02 +00:00
[xml]$XMLconf = Get-content "$WorkingDir\config\about.xml" -Encoding UTF8 -ErrorAction SilentlyContinue
2022-03-26 21:27:11 +00:00
$XMLconf.app.version = $WAUAvailableVersion
2022-03-14 13:55:02 +00:00
$XMLconf.Save("$WorkingDir\config\about.xml")
#Send success Notif
2022-03-27 10:20:33 +00:00
Write-Log "WAU Update completed." "Green"
2022-03-14 13:55:02 +00:00
$Title = $NotifLocale.local.outputs.output[3].title -f "Winget-AutoUpdate"
2022-03-26 21:27:11 +00:00
$Message = $NotifLocale.local.outputs.output[3].message -f $WAUAvailableVersion
2022-03-14 13:55:02 +00:00
$MessageType = "success"
$Balise = "Winget-AutoUpdate"
Start-NotifTask $Title $Message $MessageType $Balise
#Rerun with newer version
2022-03-22 13:39:01 +00:00
Write-Log "Re-run WAU"
Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command `"$WorkingDir\winget-upgrade`""
2022-03-14 13:55:02 +00:00
exit
}
catch{
#Send Error Notif
$Title = $NotifLocale.local.outputs.output[4].title -f "Winget-AutoUpdate"
$Message = $NotifLocale.local.outputs.output[4].message
$MessageType = "error"
$Balise = "Winget-AutoUpdate"
Start-NotifTask $Title $Message $MessageType $Balise
2022-03-27 10:20:33 +00:00
Write-Log "WAU Update failed" "Red"
2022-03-14 13:55:02 +00:00
}
2022-03-21 22:37:39 +00:00
}