# Install the J621 Windows extras (PowerShell greeting + Rust gm-switch). # # Usage: # .\install-windows.ps1 # .\install-windows.ps1 -Url https://j621.example.ts.net -Token # .\install-windows.ps1 -NoPrompt # .\install-windows.ps1 -Uninstall # # Options are forwarded to the component installers (see # powershell_greeting\install.ps1 and win-gm-switch\install.ps1). [CmdletBinding()] param( [string]$Url, [string]$Token, [switch]$NoPrompt, [switch]$Force, [switch]$NoProfilePatch, [switch]$SkipGreeting, [switch]$SkipGmSwitch, [switch]$Uninstall ) $ErrorActionPreference = 'Stop' $here = $PSScriptRoot if (-not $here) { $here = Split-Path -Parent $MyInvocation.MyCommand.Path } $failures = New-Object System.Collections.Generic.List[string] if (-not $SkipGmSwitch) { Write-Host '' Write-Host '=== gm-switch ===' $params = @{} if ($Uninstall) { $params.Uninstall = $true } & (Join-Path $here 'win-gm-switch\install.ps1') @params if ($LASTEXITCODE -ne 0) { $failures.Add('gm-switch installer failed') } } if (-not $SkipGreeting) { Write-Host '' Write-Host '=== PowerShell greeting ===' $params = @{} if ($Uninstall) { $params.Uninstall = $true } if ($Url) { $params.Url = $Url } if ($Token) { $params.Token = $Token } if ($NoPrompt) { $params.NoPrompt = $true } if ($Force) { $params.Force = $true } if ($NoProfilePatch) { $params.NoProfilePatch = $true } & (Join-Path $here 'powershell_greeting\install.ps1') @params if ($LASTEXITCODE -ne 0) { $failures.Add('greeting installer failed') } } Write-Host '' if ($failures.Count -eq 0) { Write-Host 'All done.' exit 0 } foreach ($failure in $failures) { Write-Host $failure } exit 1