Fix fallback bug and merge choco uninstall rework

- fixed return from wrong return from winget install
   Install-WinUtilProgramWinget
 - syntax/wording cleenup in Install-WinUtilProgramWinget

 - fix bugs in ty802/winutil#1 after merge
This commit is contained in:
Kian 2024-05-11 16:48:28 -05:00
parent 782fca962e
commit 532c7c85d5
No known key found for this signature in database
3 changed files with 29 additions and 22 deletions

View File

@ -17,7 +17,7 @@ function Install-WinUtilProgramChoco {
[Parameter(Mandatory, Position=0)]
[PsCustomObject]$ProgramsToInstall,
[Parameter(Mandatory, Position=1)]
[Parameter(Position=1)]
[String]$manage = "Installing"
)
@ -31,7 +31,7 @@ function Install-WinUtilProgramChoco {
Write-Progress -Activity "$manage Applications" -Status "Starting" -PercentComplete 0
Write-Host "==========================================="
Write-Host "-- insstalling Chocolatey pacakages ---"
Write-Host "-- Configuring Chocolatey pacakages ---"
Write-Host "==========================================="
Foreach ($Program in $ProgramsToInstall){
Write-Progress -Activity "$manage Applications" -Status "$manage $($Program.choco) $($x + 1) of $count" -PercentComplete $($x/$count*100)
@ -40,9 +40,10 @@ function Install-WinUtilProgramChoco {
try{
$tryUpgrade = $false
$installOutputFilePath = "$env:TEMP\Install-WinUtilProgramChoco.install-command.output.txt"
New-Item -ItemType File -Path $installOutputFilePath
$chocoInstallStatus = $(Start-Process -FilePath "choco" -ArgumentList "install $($Program.choco) -y" -Wait -PassThru -RedirectStandardOutput $installOutputFilePath).ExitCode
if(($chocoInstallStatus -eq 0) -AND (Test-Path -Path $outputFilePath)) {
$keywordsFound = Get-Content -Path $outputFilePath | Where {$_ -match "reinstall" -OR $_ -match "already installed"}
if(($chocoInstallStatus -eq 0) -AND (Test-Path -Path $installOutputFilePath)) {
$keywordsFound = Get-Content -Path $installOutputFilePath | Where-Object {$_ -match "reinstall" -OR $_ -match "already installed"}
if ($keywordsFound) {
$tryUpgrade = $true
}
@ -66,6 +67,7 @@ function Install-WinUtilProgramChoco {
write-host "Starting uninstall of $($Program.choco) with Chocolatey."
try{
$uninstallOutputFilePath = "$env:TEMP\Install-WinUtilProgramChoco.uninstall-command.output.txt"
New-Item -ItemType File -Path $uninstallOutputFilePath
$chocoUninstallStatus = $(Start-Process -FilePath "choco" -ArgumentList "uninstall $($Program.choco) -y" -Wait -PassThru).ExitCode
if($chocoUninstallStatus -eq 0){
Write-Host "$($Program.choco) uninstalled successfully using Chocolatey."
@ -82,8 +84,8 @@ function Install-WinUtilProgramChoco {
Write-Progress -Activity "$manage Applications" -Status "Finished" -Completed
# Cleanup leftovers files
Remove-Item -Path $installOutputFilePath
Remove-Item -Path $uninstallOutputFilePath
if(Test-Path -Path $installOutputFilePath){ Remove-Item -Path $installOutputFilePath }
if(Test-Path -Path $installOutputFilePath){ Remove-Item -Path $uninstallOutputFilePath }
return;
}

View File

@ -15,15 +15,18 @@ Function Install-WinUtilProgramWinget {
#>
param(
$ProgramsToInstall,
$manage = "Installing"
[Parameter(Mandatory, Position=0)]
[PsCustomObject]$ProgramsToInstall,
[Parameter(Position=1)]
[String]$manage = "Installing"
)
$x = 0
$count = $ProgramsToInstall.Count
Write-Progress -Activity "$manage Applications" -Status "Starting" -PercentComplete 0
Write-Host "==========================================="
Write-Host "-- installing winget packages ---"
Write-Host "-- Configuring winget packages ---"
Write-Host "==========================================="
Foreach ($Program in $ProgramsToInstall){
$failedPackages = @()
@ -60,9 +63,11 @@ Function Install-WinUtilProgramWinget {
Write-Host "$($Program.winget) installed successfully with User prompt."
continue
}
Write-Host "Failed to install $($Program.winget). With winget"
$failedPackages += $Program
} catch {
Write-Host "Failed to install $($Program.winget). With winget"
$failedPackages += $($Program.winget)
$failedPackages += $Program
}
}
if($manage -eq "Uninstalling"){
@ -73,11 +78,11 @@ Function Install-WinUtilProgramWinget {
Write-Host "Failed to uninstall $($Program.winget)."
} else {
Write-Host "$($Program.winget) uninstalled successfully."
$failedPackages += $($Program.winget)
$failedPackages += $Program
}
} catch {
Write-Host "Failed to uninstall $($Program.winget) due to an error: $_"
$failedPackages += $($Program.winget)
$failedPackages += $Program
}
}
$X++

View File

@ -50,10 +50,10 @@ function Invoke-WPFUnInstall {
# Install all selected programs in new window
if($packagesWinget.Count -gt 0){
Install-WinUtilProgramWinget -ProgramsToInstall $PackagesToInstall -Manage "Uninstalling"
Install-WinUtilProgramWinget -ProgramsToInstall $packagesWinget -Manage "Uninstalling"
}
if($packagesChoco.Count -gt 0){
Install-WinUtilProgramChoco -ProgramsToInstall $PackagesToInstall -Manage "Uninstalling"
Install-WinUtilProgramChoco -ProgramsToInstall $packagesChoco -Manage "Uninstalling"
}
$ButtonType = [System.Windows.MessageBoxButton]::OK
@ -69,7 +69,7 @@ function Invoke-WPFUnInstall {
}
Catch {
Write-Host "==========================================="
Write-Host "-- Winget failed to install ---"
Write-Host "Error: $_"
Write-Host "==========================================="
}
$sync.ProcessRunning = $False