1
0
Fork 0
dotfiles/run_once_prepare_windows.ps1

44 lines
No EOL
1.4 KiB
PowerShell

if (-Not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')) {
# Install required packages with winget
winget install alacritty gitui
# Install other packages with scoop because not available in winget
try{
Get-Command -Name scoop -ErrorAction Stop
}
catch{
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
}
scoop install neovim
# Install fonts
scoop bucket add nerd-fonts
scoop install FiraCode-NF FiraCode-NF-Mono FiraMono-NF FiraCode-Script FiraCode Delugia-Nerd-Font-Complete Delugia-Mono-Nerd-Font-Complete Cascadia-Code CascadiaCode-NF CascadiaCode-NF-Mono
$CommandLine = "-File `"" + $MyInvocation.MyCommand.Path + "`" " + $MyInvocation.UnboundArguments
Start-Process -FilePath PowerShell.exe -Verb Runas -ArgumentList $CommandLine
Start-Sleep -Seconds 1
} else {
try {
$appToSymlink = @(
@{
Name = 'gitui';
Path = "$env:APPDATA";
},
@{
Name = 'nvim';
Path = "$env:LOCALAPPDATA";
}
)
Foreach ($item in $appToSymlink) {
$symlink_folder = $item.Path + '\' + $item.Name
$name = $item.Name
$config_folder = "$env:USERPROFILE\.config\$name"
New-Item -Force -Path $symlink_folder -ItemType SymbolicLink -Value $config_folder
}
Exit
} catch {
Start-Sleep -Seconds 10
}
}