diff options
| -rw-r--r-- | install_apps.ps1 | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/install_apps.ps1 b/install_apps.ps1 index 72a4cd6..9031a87 100644 --- a/install_apps.ps1 +++ b/install_apps.ps1 @@ -3,21 +3,26 @@ Post-install script for adding all my apps #> +$ErrorActionPreference = "Stop" + + function Install-Winget-Package { param ( [String]$Package ) - if (! (winget list --exact -q $Package --accept-source-agreements --accept-package-agreements) ) { - Write-Verbose -Message "Installing $Package with winget" - winget install --exact --silent $Package + winget list --exact --query $Package | Out-Null + $alreadyInstalled = $? + if (!$alreadyInstalled) { + Write-Host -Message "Installing $Package" + winget install --source winget --silent --exact $Package } else { - Write-Verbose -Message "Winget package $Package is already installed! Skipping" + Write-Host -Message "Package $Package is already installed! Skipping" } } # This script does a lot so a warning is good -if ( (Read-Host -Prompt "Do you want to install packages through winget and scoop? [y/n]?").toLower() -ne "y") { +if ( (Read-Host -Prompt "Do you want to install all packages? [y/n]?").toLower() -ne "y" ) { Write-Host "You didn't say yes! Bailing out..." Exit } @@ -25,17 +30,19 @@ if ( (Read-Host -Prompt "Do you want to install packages through winget and scoo # Install winget if it's not already ## https://gist.github.com/crutkas/6c2096eae387e544bd05cde246f23901 if (! (Get-AppxPackage -Name "Microsoft.DesktopAppInstaller") ) { - Write-Verbose -Message "Installing winget" - $releases_url = "https://api.github.com/repos/microsoft/winget-cli/releases/latest" + Write-Host -Message "Installing winget" + $releasesUrl = "https://api.github.com/repos/microsoft/winget-cli/releases/latest" - [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 - $releases = Invoke-RestMethod -uri "$($releases_url)" + Write-Verbose -Message "Querying $releasesUrl" + $releases = Invoke-RestMethod -Uri $releasesUrl $latestRelease = $releases.assets | Where-Object { $_.browser_download_url.EndsWith("msixbundle") } | Select-Object -First 1 + Write-Verbose -Message "Installing latest release from $($latestRelease.browser_download_url))" Add-AppxPackage -Path $latestRelease.browser_download_url + Write-Host -Message "Done!" } -$winget_packages = @( +$wingetPackages = @( # apps "Cemu.Cemu" "Hibbiki.Chromium" @@ -100,8 +107,8 @@ $winget_packages = @( "Rustlang.Rustup" ) -foreach ($pkg in $winget_packages) { - Install-Winget-Package -Package $pkg +foreach ($package in $wingetPackages) { + Install-Winget-Package -Package $package } Write-Host "Done!" |
