-
Notifications
You must be signed in to change notification settings - Fork 0
/
install.booty
176 lines (138 loc) · 4.79 KB
/
install.booty
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
##
## Targets
##
essentials: apt(wget git vim autokey-gtk silversearcher-ag gawk xclip
gnome-disk-utility cryptsetup build-essential dconf-editor ripgrep xdotool
luarocks cmake libterm-readkey-perl expect ssh curl fzf software-properties-common)
files.git -> essentials
files.git: git(naddeo@do.naddeo.org:~/git/files, ~/files)
notes.git -> essentials
notes.git: git(naddeo@do.naddeo.org:~/git/notes, ~/notes)
ssh_conf -> essentials
ssh_conf:
setup: ssh-keygen
is_setup:
test -f ~/.ssh/id_rsa.pub
test -f ~/.ssh/id_rsa
## Terminal stuff
nvim -> essentials
nvim:
setup:
curl -L https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz -o ~/nvim-linux64.tar.gz
tar -xzf ~/nvim-linux64.tar.gz -C ~
is_setup: test -f ~/nvim-linux64/bin/nvim
nvim_config -> files.git
nvim_config: ln(~/files/conf/nvim, ~/.config/nvim)
unit.nvim -> essentials
unit.nvim: git(https://github.com/naddeoa/nvim-pytest.git, ~/workspace/nvim-unit)
packer -> essentials
packer: git_shallow(https://github.com/wbthomason/packer.nvim, ~/.local/share/nvim/site/pack/packer/start/packer.nvim)
terminal -> essentials
terminal: apt(kitty fish tmux)
omf -> terminal
omf:
setup:
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install > /tmp/fish-install
chmod +x /tmp/fish-install
/tmp/fish-install --noninteractive
is_setup: which fish && fish -c 'omf --version'
omf_config -> omf
omf_config:
setup: fish -c "omf install fzf clearance pyenv bass"
is_setup:
which fish && fish -c "omf list | grep fzf"
which fish && fish -c "omf list | grep clearance"
shell_conf -> essentials
shell_conf:
setup: sudo chsh -s /usr/bin/fish $(USER)
is_setup: cat /etc/passwd | grep anthony | grep fish
tpm -> terminal
tpm: git(https://github.com/tmux-plugins/tpm, ~/.tmux/plugins/tpm)
agave_font -> essentials
agave_font:
setup:
curl https://github.com/ryanoasis/nerd-fonts/releases/download/v3.1.1/Agave.zip -o /tmp/agave.zip
mkdir -p ~/.fonts
unzip /tmp/agave.zip -d ~/.fonts/
fc-cache -f -v
is_setup: fc-list | grep Agave
## Dotfile symlinks
files.git <- ln_Code ln_autokey ln_ctags ln_gitconfig ln_tmux.conf ln_toprc ln_xbindkeysrc ln_Xmodmap ln_kitty.conf ln_fish_history ln_fish_timer ln_config.fish
ln_Code: ln(~/files/conf/Code, ~/.config/Code)
ln_autokey: ln(~/files/conf/autokey, ~/.config/autokey)
ln_ctags: ln(~/files/conf/.ctags, ~/.ctags)
ln_gitconfig: ln(~/files/conf/.gitconfig, ~/.gitconfig)
ln_tmux.conf: ln(~/files/conf/.tmux.conf, ~/.tmux.conf)
ln_toprc: ln(~/files/conf/.toprc, ~/.toprc)
ln_xbindkeysrc: ln(~/files/conf/.xbindkeysrc, ~/.xbindkeysrc)
ln_Xmodmap: ln(~/files/conf/.Xmodmap, ~/.Xmodmap)
ln_kitty.conf: ln(~/files/conf/kitty.conf, ~/.config/kitty/kitty.conf)
ln_config.fish: ln(~/files/conf/.config/fish/config.fish, ~/.config/fish/config.fish)
ln_fish_history: ln(~/files/conf/.local/share/fish/fish_history, ~/.local/share/fish/fish_history)
ln_fish_timer: ln(~/files/conf/fish_command_timer.fish, ~/.config/fish/conf.d/fish_command_timer.fish)
## Python
recipe pyenv(version):
setup:
~/.pyenv/bin/pyenv install $((version))
is_setup:
~/.pyenv/bin/pyenv versions | grep $((version))
pipx -> essentials terminal
pipx: apt(pipx)
pyenv -> essentials terminal pipx omf_config
pyenv <- python3.7 python3.8 python3.9 python3.10 python3.11
pyenv:
setup:
apt(build-essential libssl-dev zlib1g-dev libncurses5-dev libncursesw5-dev
libreadline-dev libsqlite3-dev libgdbm-dev libdb5.3-dev libbz2-dev
libexpat1-dev liblzma-dev tk-dev libffi-dev)
curl https://pyenv.run | bash
is_setup: test -e ~/.pyenv/bin/pyenv
python3.7: pyenv(3.7)
python3.8: pyenv(3.8)
python3.9: pyenv(3.9)
python3.10: pyenv(3.10)
python3.11: pyenv(3.11.6)
poetry -> pipx
poetry: pipx(poetry)
## node
nvm -> omf
nvm:
setup:
PROFILE=/dev/null bash -c 'curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash'
fish -c "omf install nvm"
is_setup:
fish -c "nvm --version"
node -> nvm
node:
setup:
fish -c "nvm install --lts"
fish -c "nvm use --lts"
is_setup:
fish -c "nvm exec --lts node --version"
##
## Racket
##
racket -> essentials
racket:
setup:
ppa(ppa:plt/racket)
apt(racket libssl-dev)
sudo raco setup --doc-index --force-user-docs
is_setup: which racket
frog -> racket
frog:
setup: raco pkg install --auto frog
is_setup: raco pkg show frog | grep Package
##
## Silly test cases that aren't real
##
recipe first():
setup: sleep .1
is_setup:
sleep .1
false
# recipe that calls another recipe
recipe calls_first():
setup: first()
is_setup: first()
first_target: calls_first()