summaryrefslogtreecommitdiff
path: root/install_apps.ps1
blob: cb9514df2da496d9d4f4f7c5e31899da50eb736e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
<#
.SYNOPSIS
	Post-install script for adding all my apps
.NOTES
	Inspired by https://gist.github.com/mikepruett3/7ca6518051383ee14f9cf8ae63ba18a7
#>

$ErrorActionPreference = "Stop"


function Install-WingetPackage {
	param (
		[String]$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-Host -Message "Package $Package is already installed! Skipping"
	}
}

function Install-Winget {
	<#
	.NOTES
		Sourced from https://gist.github.com/crutkas/6c2096eae387e544bd05cde246f23901
	#>

	Write-Host -Message "Installing winget"
	$releasesUrl = "https://api.github.com/repos/microsoft/winget-cli/releases/latest"

	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 "Installed WinGet!"
}


# This script does a lot so a warning is good
if ( (Read-Host -Prompt "Do you want to install all packages? [y/n]?").toLower() -ne "y" ) {
	Write-Host -Message "You didn't say yes! Bailing out..."
	Exit
}

# Install winget if it's not already
if (! (Get-AppxPackage -Name "Microsoft.DesktopAppInstaller") ) {
	Install-Winget
}

$wingetPackages = @(
	# regular apps
	#"Cemu.Cemu"
	"Hibbiki.Chromium"
	"Ubisoft.Connect"
	"Discord.Discord"
	#"DolphinEmulator.Dolphin"
	"ElectronicArts.EADesktop"
	"Element.Element"
	"EpicGames.EpicGamesLauncher"
	"Mozilla.Firefox"
	"GOG.Galaxy"
	"Mojang.MinecraftLauncher"
	"OBSProject.OBSStudio"
	"dotPDNLLC.paintdotnet"
	"PrismLauncher.PrismLauncher"
	#"Libretro.RetroArch"
	"Spotify.Spotify"
	"Valve.Steam"
	"tailscale.tailscale"
	"OneGal.Viper"
	#"YuzuEmu.Yuzu.Mainline"

	# utils
	"bootandy.dust"
	"voidtools.Everything"
	"valinet.ExplorerPatcher"
	"sharkdp.fd"
	"RyanGregg.GCFScape"
	"HandBrake.HandBrake"
	"REALiX.HWiNFO"
	"KDE.Kdenlive"
	"M2Team.NanaZip"
	"Jaquadro.NBTExplorer"
	"nomacs.nomacs"
	"Notepad++.Notepad++"
	"Neovim.Neovim"
	"TechPowerUp.NVCleanstall"
	"namazso.OpenHashTab"
	"CalcProgrammer1.OpenRGB"
	"Microsoft.PowerShell"
	"Microsoft.PowerToys"
	"qBittorrent.qBittorrent"
	"BurntSushi.ripgrep.MSVC"
	"Rclone.Rclone"
	"restic.restic"
	"smartmontools.smartmontools"
	"VideoLAN.VLC"
	"RyanGregg.VTFEdit"
	"AntibodySoftware.WizTree"
	"yt-dlp.yt-dlp"

	# dev tools
	"Git.Git"
	"GitHub.cli"
	"GnuPG.GnuPG"
	"Casey.Just"
	"EclipseAdoptium.Temurin.17.JDK"
	"EclipseAdoptium.Temurin.8.JRE"
	"Microsoft.VisualStudio.2022.Community"
	"Microsoft.VisualStudioCode"
	"Python.Python.3.12"
	"Rustlang.Rustup"
)

foreach ($package in $wingetPackages) {
	Install-WingetPackage -Package $package
}

Write-Host -Message "Done!"