summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorseth <[email protected]>2024-02-22 20:53:37 -0500
committerseth <[email protected]>2024-02-22 20:53:37 -0500
commit6be0a47878fab88184ef913e6f9710e58677deb8 (patch)
treefdd86a495aabeb43ea0a4a37a99f21458ea1cfd6
parente69529ef3a8879de999be51bf741280b60c48345 (diff)
fixup install_apps
-rw-r--r--install_apps.ps131
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!"