Write-Warning " You must run have the MOST RECENT WINGET. "
Write-Warning " winget --version "
Write-Warning " winget install which "
Write-Warning " Before running this script. If you see errors below then CTRL-C to abort. "
which which
Read-Host -Prompt " Press any key to continue, or CTRL-C to abort " | Out-Null
$installs = @ (
'Geany.Geany' ,
'Git.Git' ,
'Genivia.ugrep' ,
'Microsoft.WindowsTerminal' ,
'Microsoft.VCRedist.2015+.x64'
)
Write-Warning " About to install the following software: "
Write-Warning " ----------------------------------------- "
foreach ( $pkg in $installs ) { Write-Host $pkg }
Write-Warning " ----------------------------------------- "
Write-Warning " This will use winget to do the installs. If you already have this software installed then winget should only upgrade them. If you don't want this then abort now. "
Read-Host -Prompt " Press any key to continue, or CTRL-C to abort " | Out-Null
foreach ( $pkg in $installs ) {
Start-Process -NoNewWindow -Wait winget -ArgumentList 'install' , $pkg
}
$winlibsPath = $ExecutionContext . SessionState . Path . GetUnresolvedProviderPathFromPSPath ( " $ env:APPDATA\..\Local\Programs\WinLibs " )
if ( Test-Path -Path $winlibsPath ) {
Write-Warning " #=========================================================# "
Write-Warning " !! The directory $ winlibsPath already exists, which means "
Write-Warning " !! you already have winlibs installed. Here's the version: "
cat " $ winlibsPath\mingw64\version_info.txt "
Write-Warning " #=========================================================# "
Write-Warning " Here's the version that Winget will install: "
winget search BrechtSanders . WinLibs . POSIX . UCRT . LLVM
Write-Warning " --- If you want me to replace your install with this version, then stop and "
Write-Warning " delete the $ winlibsPath directory before hitting ENTER to continue. "
Write-Warning " !!! If you do NOT want to replace this directory then hit CTRL-C now. "
Read-Host -Prompt " Press any key to continue, or CTRL-C to abort " | Out-Null
}
Write-Warning " !! Installing WinLibs in $ winlibsPath "
Write-Warning " This has to be installed this way because winget won't add it to the path so I have to do it manually. If you don't want this, then hit CTRL-C and install WinLibs yourself. "
Read-Host -Prompt " Press any key to continue, or CTRL-C to abort " | Out-Null
winget install - -location " $ winlibsPath " -e BrechtSanders . WinLibs . POSIX . UCRT . LLVM
if ( $env:PATH . contains ( $winlibsPath ) ) {
Write-Warning " !! Detected $ winLibsPath in your PATH. Will not update your PATH. "
Write-Warning " !! This is probably because you already installed it. You'll have "
Write-Warning " !! to manually remove this part of your path if you want to change it. "
Write-Warning " !! But, it will probably still work since that's where I installed it. "
} else {
$newPath = $env:PATH + " ; $ winlibsPath\mingw64\bin "
[Environment] :: SetEnvironmentVariable ( " Path " , $newPath , " User " )
}
$gitPath = $ExecutionContext . SessionState . Path . GetUnresolvedProviderPathFromPSPath ( " $ env:APPDATA\..\Local\Programs\Git\cmd " )
Write-Warning " ============= GIT CHECK =========== "
if ( $env:PATH . contains ( $gitPath ) ) {
Write-Host " !! Looks like your git installed correctly, but if it fails to run then uninstall it with 'winget remove git.git' then install it again with 'winget install git.git' "
} else {
Write-Warning " !! Git.Git did not add itself to the Path. The directory $ gitPath is missing so I'll add it now. "
$newPath = $env:PATH + " ; $ gitPath "
[Environment] :: SetEnvironmentVariable ( " Path " , $newPath , " User " )
Write-Host " !!!!!!!! You should get the pathfixer.ps1 script to attempt to force $ gitPath into the user PATH. "
Write-Host " You do this the same way you got this script, just replace base.ps1 with pathfixer.ps1 "
}