diff --git a/Sources/Winget-AutoUpdate/config/WAU-MSI_Actions.ps1 b/Sources/Winget-AutoUpdate/config/WAU-MSI_Actions.ps1 index dae4fd8..57821c7 100644 --- a/Sources/Winget-AutoUpdate/config/WAU-MSI_Actions.ps1 +++ b/Sources/Winget-AutoUpdate/config/WAU-MSI_Actions.ps1 @@ -2,6 +2,7 @@ param( [Parameter(Mandatory = $false)] [string] $AppListPath, [Parameter(Mandatory = $false)] [string] $InstallPath, + [Parameter(Mandatory = $false)] [string] $CurrentDir, [Parameter(Mandatory = $false)] [string] $Upgrade, [Parameter(Mandatory = $False)] [Switch] $Uninstall = $false ) @@ -9,6 +10,7 @@ param( #For troubleshooting Write-Output "AppListPath: $AppListPath" Write-Output "InstallPath: $InstallPath" +Write-Output "CurrentDir: $CurrentDir" Write-Output "Upgrade: $Upgrade" Write-Output "Uninstall: $Uninstall" @@ -120,6 +122,13 @@ function Install-WingetAutoUpdate { Copy-Item -Path $AppListPath -Destination $InstallPath } + #Copy Mods to install folder + $ModsFolder = Join-Path $CurrentDir "Mods" + if (Test-Path $ModsFolder) { + Write-Output "-> Copying $ModsFolder to $InstallPath" + Copy-Item -Path $ModsFolder -Destination "$InstallPath" -Recurse + } + #Secure folders if not installed to ProgramFiles if ($InstallPath -notlike "$env:ProgramFiles*") { @@ -157,7 +166,7 @@ function Install-WingetAutoUpdate { #Add 1 to Github counter file try { - Invoke-RestMethod -Uri "https://github.com/Romanitho/Winget-AutoUpdate/releases/download/v$($WAUconfig.ProductVersion)/WAU_InstallCounter" | Out-Null + Invoke-WebRequest -Uri "https://github.com/Romanitho/Winget-AutoUpdate/releases/download/v$($WAUconfig.ProductVersion)/WAU_InstallCounter" -UseBasicParsing | Out-Null Write-Host "-> Reported installation." } catch { @@ -183,7 +192,7 @@ function Uninstall-WingetAutoUpdate { Get-ScheduledTask -TaskName "Winget-AutoUpdate-UserContext" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$False Get-ScheduledTask -TaskName "Winget-AutoUpdate-Policies" -ErrorAction SilentlyContinue | Unregister-ScheduledTask -Confirm:$False - #If upgrade, keep app list. Else, remove. + #If upgrade, keep app list and mods. Else, remove. if ($Upgrade -like "#{*}") { Write-Output "-> Upgrade detected. Keeping *.txt app lists" } @@ -193,6 +202,7 @@ function Uninstall-WingetAutoUpdate { Write-Output "-> Removing items: $AppLists" Remove-Item $AppLists -Force } + Remove-Item "$InstallPath\mods" -Recurse -Force } $ConfFolder = Get-Item (Join-Path "$InstallPath" "config") -ErrorAction SilentlyContinue diff --git a/Sources/Winget-AutoUpdate/functions/Update-WAU.ps1 b/Sources/Winget-AutoUpdate/functions/Update-WAU.ps1 index b91ae3e..030e609 100644 --- a/Sources/Winget-AutoUpdate/functions/Update-WAU.ps1 +++ b/Sources/Winget-AutoUpdate/functions/Update-WAU.ps1 @@ -11,9 +11,14 @@ function Update-WAU { #Run WAU update try { - #Download the msi Write-ToLog "Downloading the GitHub Repository version $WAUAvailableVersion" "Cyan" - $MsiFile = "$env:temp\WAU.msi" + + #Create an unpredictable temp folder for security reasons + $MsiFolder = "$env:temp\WAU_$(Get-Date -Format yyyyMMddHHmmss)" + New-Item -ItemType Directory -Path $MsiFolder + + #Download the msi + $MsiFile = Join-Path $MsiFolder "WAU.msi" Invoke-RestMethod -Uri "https://github.com/Romanitho/Winget-AutoUpdate/releases/download/v$($WAUAvailableVersion)/WAU.msi" -OutFile $MsiFile #Update WAU @@ -27,6 +32,9 @@ function Update-WAU { $MessageType = "success" Start-NotifTask -Title $Title -Message $Message -MessageType $MessageType -Button1Action $OnClickAction -Button1Text $Button1Text + #Remove temp folder and content + Remove-Item $MsiFolder -Recurse -Force + exit 0 } diff --git a/Sources/Wix/build.wxs b/Sources/Wix/build.wxs index 37450ee..518c656 100644 --- a/Sources/Wix/build.wxs +++ b/Sources/Wix/build.wxs @@ -251,7 +251,7 @@ - +