-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.ps1
98 lines (86 loc) · 3.87 KB
/
install.ps1
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
function installFonts([String]$fontDir) {
Write-Output "Install fonts: $fontDir"
$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
foreach ($file in Get-ChildItem $fontDir\\*.ttf)
{
$fileName = $file.Name
if (-not(Test-Path -Path "C:\Windows\fonts\$fileName" )) {
Write-Output $fileName
Get-ChildItem $file | ForEach-Object{ $fonts.CopyHere($_.fullname) }
}
}
Copy-Item $fontDir\\*.ttf c:\windows\fonts\
}
# Test-CommandExists
Function Test-CommandExists {
Param ($command)
$oldPreference = $ErrorActionPreference
$ErrorActionPreference = 'stop'
try {
if (Get-Command $command) {
return $true
}
}
Catch {
return $false
}
Finally {
$ErrorActionPreference = $oldPreference
}
}
Install-Module -Name Terminal-Icons -Repository PSGallery
# Install gsudo
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; [Net.ServicePointManager]::SecurityProtocol = 'Tls12'; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
# fzf
winget install fzf
Install-Module -Name PSFzf
winget install sharkdp.bat # bat is a better pager
winget install eza-community.eza # eza is a better ls
winget install ajeetdsouza.zoxide # zoxide is a better cd
winget install JanDeDobbeleer.OhMyPosh -s winget # nice prompt
winget install -e --id Microsoft.VisualStudioCode # VSCode
winget install Neovim.Neovim
winget install -e --id zig.zig
# Install NerdFont patched fonts
installFonts(".\\fonts")
# Install VSCode extensions
if (Test-CommandExists code) {
code --install-extension aaron-bond.better-comments
code --install-extension eamodio.gitlens
code --install-extension devprod.vulnerability-extension
code --install-extension ms-vsliveshare.vsliveshare
code --install-extension oderwat.indent-rainbow
code --install-extension shardulm94.trailing-spaces
code --install-extension davidanson.vscode-markdownlint
code --install-extension yzhang.markdown-all-in-one
code --install-extension bierner.markdown-mermaid
code --install-extension ms-azuretools.azure-dev
code --install-extension ms-vscode.azure-account
code --install-extension ms-azuretools.vscode-azureappservice
code --install-extension ms-azuretools.vscode-azurecontainerapps
code --install-extension ms-azuretools.vscode-azurefunctions
code --install-extension ms-azuretools.vscode-azureresourcegroups
code --install-extension ms-azuretools.vscode-azurestaticwebapps
code --install-extension ms-azuretools.vscode-azurestorage
code --install-extension ms-azuretools.vscode-azurevirtualmachines
code --install-extension ms-azuretools.vscode-bicep
code --install-extension ms-azuretools.vscode-cosmosdb
code --install-extension ms-azuretools.vscode-docker
code --install-extension ms-vscode.azure-repos
code --install-extension ms-vscode.azurecli
code --install-extension bencoleman.armview
code --install-extension msazurermtools.azurerm-vscode-tools
code --install-extension ms-dotnettools.csdevkit
code --install-extension ms-dotnettools.csharp
code --install-extension ms-dotnettools.vscode-dotnet-runtime
code --install-extension ms-vscode.cpptools
code --install-extension ms-vscode.powershell
code --install-extension ms-vscode-remote.remote-containers
code --install-extension ms-vscode-remote.remote-ssh
code --install-extension ms-vscode-remote.remote-ssh-edit
code --install-extension ms-vscode-remote.remote-wsl
code --install-extension ms-vscode-remote.vscode-remote-extensionpack
}
# Create symlinks for the profile and nvim config
New-Item -Path $ENV:USERPROFILE\\AppData\\Local\\nvim -ItemType SymbolicLink -Value $PSScriptRoot\\.config\nvim
New-Item -Path $profile -ItemType SymbolicLink -Value $PSScriptRoot\\Microsoft.PowerShell_profile.ps1