-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.yml
236 lines (220 loc) · 8.07 KB
/
setup.yml
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
init:
description: |
A series of commands and tools you must absolutely
install first, before doing anything else
items:
Scoop:
description: |
The single best package manager on Windows, chocolatey is
similar but scoop is best.
type: Package Manager
priority: highest
commands:
- Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
- irm get.scoop.sh | iex
Aria2:
description: |
Scoop can leverage Aria2 to download every package using parallel processes
and thus make your installs go much faster. Very important to get first.
type: Downloader
priority: highest
commands:
- scoop install aria2
git:
description: |
You can't do much without git nowadays, this is the most widely used,
if not the 'universal' versioning tool. Any software that is distributed
online is most likely using git at some point of its integration pipeline.
If you don't have git, you can't download much on windows.
type: CLI
priority: highest
commands:
- scoop install git
sudo:
description: |
A famous command from the unix world that temporarily gives you administrator privileges
for the command you're about to run (only). A great way to quickly obtain admin privileges
while running CLI tools.
type: CLI
priority: highest
commands:
- scoop install sudo
Scoop-Buckets:
description: |
Buckets are a way to group scoop packages. The barebones required
packages are 'pre-installed' in the 'main' bucket, but then you can
add any bucket to have access to other repositories.
type: Package repositories
priority: highest
commands:
- scoop bucket add extras
- scoop bucket add versions
- scoop bucket add nerd-fonts
Windows Terminal:
description: |
Simply the best way to run shells and CLI apps on Windows
as of today.
type: Terminal
priority: highest
commands:
- scoop install windows-terminal
- reg import $( Resolve-Path "~\scoop\apps\windows-terminal\current\install-context.reg")
- scoop install vcredist2022
- scoop uninstall vcredist2022
coreutils:
description: |
A scoop package that helps you have access to important CLI basics which are
usually pre-installed on unix but not on windows.
priority: highest
type: CLI
commands:
- scoop install coreutils
psutils:
description: |
A scoop package that helps you have access to important CLI basics which are
usually pre-installed on unix but not on windows.
priority: highest
type: CLI
commands:
- scoop install psutils
zoxide:
description: |
A native powershell implementation of the `z` command that moves you to the best match directory
based on frequency of visited dirs or other variables, no matter your current position.
Equivalent of "teleportation" in terms of `cd` type commands.
type: CLI
priority: highest
commands:
- scoop install zoxide
append-to-profile: |
Invoke-Expression (& { $hook = if ($PSVersionTable.PSVersion.Major -ge 6) { 'pwd' } else { 'prompt' } (zoxide init powershell --hook $hook | Out-String) })
gh:
description: |
The very useful github CLI tool, allows to create repos and releases from the command line.
Don't miss this one, very useful :)
priority: highest
type: CLI
commands:
- scoop install gh
Python:
description: |
The slow but insanely popular language most data science & applied math
folks use. We're going to assume you'll be using this language before any other
if you're a random person, or someone who wishes to perform some data related task.
Okay, R exists, but it's much less universal.
priority: highest
type: language
admin: true
commands:
- scoop install python
- regedit.exe /s $(Resolve-Path "~/scoop/apps/python/current/install*reg")
Go:
description: |
A relatively fast and C++ like modern language from Google.
A lot of important CLI tools can be instantly installed using
the `go install github.com/<user>/<repo>@latest` which makes it
incredibly potent for fast setups
priority: highest
type: language
commands:
- scoop install go
Ghrel:
description: |
A CLI tool that instantly downloads latest releases from github repositories.
You just have to `ghrel github.com/<user>/<repo>@latest` and you instantly get the
content. Very useful to download portable exes or fonts from github
priority: important
type: CLI
commands:
- go install github.com/jreisinger/ghrel@latest
Bat:
description: |
A much friendlier version of cURL and `irm` written in go
priority: important
type: CLI
commands:
- go install github.com/astaxie/bat
jq-yq:
description: |
CLI to filter/process json (jq) or YAML (yq).
Both are fairly important and useful, so having them cannot hurt.
priority: important
type: CLI
commands:
- scoop install jq
- scoop install yq
Nerd-Fonts:
description: |
Nerd fonts are a special kind of font that has been designed to make code
and other technical (scientific, math) syntax much more pleasing and easy to read.
Most people who code a lot use Nerd-Fonts because it just makes it much more appealing.
type: font
priority: important
admin: true
commands:
- sudo scoop install -g FiraCode-NF
- sudo scoop install -g Iosevka-NF
Terminal-Icons:
description: |
Useful as a complement to Nerd fonts and/or starship/oh-my-posh.
type: UI
priority: preferable
commands:
- Install-Module -Name Terminal-Icons -Repository PSGallery
run:
description: |
This is a way to specify the order in which the packages should be installed.
This list of commands is then put into a single powershell script and compiled to an
executable for anyone to use !
steps:
- Scoop
- git
- Aria2
- Scoop-Buckets
- sudo
- Windows Terminal
- coreutils
- psutils
- gh
- zoxide
- Python
- Go
- Ghrel
- Bat
- jq-yq
- Nerd-Fonts
- Terminal-Icons
dev:
description: |
These are developper (or more advanced) options which are good to have,
but are more consuming. They involve downloading Visual Studio C++ Build Tools,
which at least takes 5 minutes. This way you then have access to the entire rust
toolchain and can install rust CLIs and tools.
items:
Visual Studio Build Tools:
description: |
The absolute minimum to have in order to compile lots of low level code,
and a necessity to use rust's `cargo install` command.
priority: highest
type: toolkit
commands: |
Invoke-WebRequest -Uri 'https://aka.ms/vs/17/release/vs_BuildTools.exe' -OutFile "$env:TEMP\vs_BuildTools.exe"
& "$env:TEMP\vs_BuildTools.exe" --force --quiet --wait --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended --remove Microsoft.VisualStudio.Component.VC.CMake.Project
$startTime = $(Get-Date).Ticks
While ($(ps | sls vs_BuildTools).Length -gt 0) {
$currTime = $startTime = $(Get-Date).Ticks
$elapsed = $currTime - $startTime
Write-
}
Git-Semver:
description: |
A go implementation of the git semantic revisioning tag cli.
Automatically bumps versions like 01.32.12 to 01.32.13 etc.
priority: useful
type: CLI
commands:
- go install github.com/maykonlf/semver-cli/cmd/semver@latest
run:
steps:
- Visual Studio Build Tools
- Git-Semver