-
Notifications
You must be signed in to change notification settings - Fork 0
/
dotfiles-install.sh
executable file
·125 lines (115 loc) · 2.19 KB
/
dotfiles-install.sh
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
#!/bin/bash
DOTFILES="$HOME/Source/github.com/jeffwindsor/startpage"
function Add-Homebrew() {
eval "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
}
function Add-Packages() {
packages=(
asdf
bash
bash-language-server
bat
black
eza
fastfetch
fd
fzf
git
helix
lazygit
neovim
python-lsp-server
ripgrep
sd
starship
stow
tldr
tmux
yazi
zsh
aerospace --cask
balenaetcher --cask
firefox --cask
font-droid-sans-mono-nerd-font --cask
font-fira-code-nerd-font --cask
font-jetbrains-mono-nerd-font --cask
google-chrome --cask
keepingyouawake --cask
qbittorrent --cask
spotify --cask
sweet-home3d --cask
vlc --cask
allacritty --cask
kitty --cask
wezterm --cask
)
for p in "${packages[@]}"; do brew install "$p"; done
}
function Add-Work-Packages() {
packages=(
asdf
aws-cdk
awscli
colima
curl
docker
docker-credential-helper
gitlab-ci-localk9s
kubernetes-cli
kubeseal
lazydocker
maven
rlwrap
sbt
scala
watch
balenaetcher --cask
tuple --cask
)
for p in "${packages[@]}"; do brew install "$p"; done
}
function Add-Dotfiles() {
mkdir -p "$HOME/Source/github.com/"
git clone [email protected]:jeffwindsor/dotfiles.git "$HOME/Source/github.com/jeffwindsor/dotfiles"
git clone [email protected]:jeffwindsor/startpage.git "$DOTFILES"
cd "$DOTFILES" || return
stow . --target="$HOME"
cd || return
}
function Force-Dotfile-Overwrite() {
cd "$DOTFILES" || return
stow . --target="$HOME" --adopt
git restore .
cd || return
}
PS3="Execute Setup Operation: "
select opt in All Add-Homebrew Add-Packages Add-Work-Packages Add-Dotfiles Force-Dotfile-Overwrite Quit; do
case $opt in
"All")
Add-Homebrew
Add-Packages
Add-Dotfiles
;;
"Add-Homebrew")
Add-Homebrew
;;
"Add-Packages")
Add-Packages
;;
"Add-Work-Packages")
Add-Work-Packages
;;
"Add-Dotfiles")
Add-Dotfiles
;;
"Force-Dotfile-Overwrite")
Force-Dotfile-Overwrite
;;
"Quit")
break
;;
*)
echo "Unrecognized Option"
;;
esac
done