The complete windows feel
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
Write-Host "NVIM setup script for Windows" -ForegroundColor Green
|
||||
Write-Host "Installing winget packages" -foregroundcolor cyan
|
||||
|
||||
$packages = @(
|
||||
"Neovim.Neovim",
|
||||
"MartinStorsjo.LLVM-MinGW.MSVCRT",
|
||||
"zig.zig",
|
||||
"GnuWin32.Make",
|
||||
"Rustlang.Rust.MSVC",
|
||||
"GoLang.Go",
|
||||
"Kitware.Cmake",
|
||||
"Ninja-build.Ninja",
|
||||
"LuaLS.lua-language-server"
|
||||
)
|
||||
|
||||
for ($i = 0; $i -lt $packages.Count; $i++) {
|
||||
$index = $i + 1
|
||||
Write-Host ("{0,4}) {1}" -f $index, $packages[$i]) -foreground yellow
|
||||
winget install $package
|
||||
}
|
||||
|
||||
if ( !(Get-Command cargo -ErrorAction SilentlyContinue) ) {
|
||||
Write-Host "Cargo is not installed. Please install Rust to proceed." -ForegroundColor Red
|
||||
return
|
||||
} else {
|
||||
Write-Host "Installing cargo package treesitter-cli" -foregroundcolor cyan
|
||||
cargo install --locked tree-sitter-cli
|
||||
}
|
||||
|
||||
$list = @(
|
||||
"Git.Git",
|
||||
"ajeetdsouza.zoxide"
|
||||
)
|
||||
|
||||
Write-Host "`nOptional packages to install:`n" -ForegroundColor Magenta
|
||||
|
||||
for ($i = 0; $i -lt $list.Count; $i++) {
|
||||
$index = $i + 1
|
||||
Write-Host "$index) $($list[$i])" -ForegroundColor Magenta
|
||||
}
|
||||
|
||||
Write-Host "`nInstall all packages? [Y]es / [N]o / [E]dit list: " -ForegroundColor Green -NoNewLine
|
||||
$answer = Read-Host
|
||||
|
||||
switch ($answer.ToLower()) {
|
||||
|
||||
"y" {
|
||||
$selected = $list
|
||||
}
|
||||
|
||||
"n" {
|
||||
Write-Host "No packages will be installed." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
|
||||
"e" {
|
||||
Write-Host "`nEnter numbers to EXCLUDE (space separated, e.g. 2 3): " -ForegroundColor Yellow -NoNewLine
|
||||
$excludeInput = Read-Host
|
||||
|
||||
$excludeIndexes = $excludeInput -split "\s+" | ForEach-Object { [int]$_ - 1 }
|
||||
|
||||
$selected = @()
|
||||
for ($i = 0; $i -lt $list.Count; $i++) {
|
||||
if ($excludeIndexes -notcontains $i) {
|
||||
$selected += $list[$i]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
default {
|
||||
Write-Host "Invalid option. Exiting." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if ($selected.Count -eq 0) {
|
||||
Write-Host "Nothing to install." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
|
||||
Write-Host "`nInstalling selected packages:`n" -ForegroundColor Cyan
|
||||
|
||||
foreach ($module in $selected) {
|
||||
Write-Host "Installing $module..." -ForegroundColor Yellow
|
||||
winget install --id $module
|
||||
}
|
||||
Reference in New Issue
Block a user