dotfiles for servers
1set positional-arguments := true
2
3[private]
4default:
5 @just --list
6
7[group('base')]
8install-base-packages:
9 #!/usr/bin/env bash
10
11 sudo dnf install -y \
12 7zip \
13 borgbackup \
14 btop \
15 dnf-automatic \
16 dnf-utils \
17 fastfetch \
18 fzf \
19 git \
20 gum \
21 htop \
22 jq \
23 kernel-devel \
24 lnav \
25 node-exporter \
26 pipx \
27 podman-compose \
28 xauth \
29 xclip \
30 zsh
31
32[group('base')]
33install-zfs:
34 #!/usr/bin/env bash
35
36 sudo dnf install -y https://zfsonlinux.org/epel/zfs-release-3-0$(rpm --eval "%{dist}").noarch.rpm
37 sudo dnf install -y zfs
38
39[group('utils')]
40install-ipfs:
41 #!/usr/bin/env bash
42
43 readarray -t -O \
44 "${#urls[@]}" urls \
45 < <(curl -s https://api.github.com/repos/ipfs/kubo/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep "linux-amd64.tar.gz" | grep -v ".cid" | tr -d '"')
46
47 TEMP_DIR=$(mktemp -d)
48 cd "$TEMP_DIR"
49
50 for url in "${urls[@]}"; do
51 curl -SL -O "$url"
52 done
53
54 if ! sha512sum -c kubo*.sha512; then
55 exit 1
56 fi
57
58 tar -xvzf kubo*.tar.gz
59 sudo bash kubo/install.sh
60 cd -
61 sudo rm -rf "$TEMP_DIR"
62 sudo chown -R root:root /usr/local/bin
63
64[group('utils')]
65install-dust:
66 #!/usr/bin/env bash
67
68 url=$(curl -s https://api.github.com/repos/bootandy/dust/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep "x86_64-unknown-linux-gnu.tar.gz" | tr -d '"')
69 digest=$(curl -s https://api.github.com/repos/bootandy/dust/releases/latest | jq -c '.assets.[] | select(.browser_download_url | contains("x86_64-unknown-linux-gnu.tar.gz")) | .digest' | tr -d '"' | awk -F: '{print $2}')
70
71 TEMP_DIR=$(mktemp -d)
72 cd "$TEMP_DIR"
73
74 curl -SL -O "$url"
75 if ! echo "${digest} $(basename $url)" | sha256sum -c; then
76 exit 1
77 fi
78
79 tar -xvzf dust*.tar.gz
80 sudo cp -fv dust*/dust /usr/local/bin
81 cd -
82 sudo rm -rf "$TEMP_DIR"
83 sudo chown -R root:root /usr/local/bin
84
85[group('utils')]
86install-podlet:
87 #!/usr/bin/env bash
88
89 readarray -t -O \
90 "${#urls[@]}" urls \
91 < <(curl -s https://api.github.com/repos/containers/podlet/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep "x86_64-unknown-linux-gnu.tar.xz" | tr -d '"')
92
93 TEMP_DIR=$(mktemp -d)
94 cd "$TEMP_DIR"
95
96 for url in "${urls[@]}"; do
97 curl -SL -O "$url"
98 done
99
100 if ! sha256sum -c podlet*.sha256; then
101 exit 1
102 fi
103
104 tar -xvf podlet*.tar.xz
105 sudo cp -fv podlet*/podlet /usr/local/bin
106 cd -
107 sudo rm -rf "$TEMP_DIR"
108 sudo chown root:root /usr/local/bin/podlet
109
110[group('utils')]
111install-lsd:
112 #!/usr/bin/env bash
113
114 url=$(curl -s https://api.github.com/repos/lsd-rs/lsd/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep "x86_64-unknown-linux-gnu.tar.gz" | tr -d '"')
115 digest=$(curl -s https://api.github.com/repos/lsd-rs/lsd/releases/latest | jq -c '.assets.[] | select(.browser_download_url | contains("x86_64-unknown-linux-gnu.tar.gz")) | .digest' | tr -d '"' | awk -F: '{print $2}')
116
117 TEMP_DIR=$(mktemp -d)
118 cd "$TEMP_DIR"
119 curl -SL -O "$url"
120
121 if ! echo "${digest} $(basename $url)" | sha256sum -c; then
122 exit 1
123 fi
124
125 tar -xvzf lsd*.tar.gz
126 sudo cp -fv lsd*/lsd /usr/local/bin
127 sudo cp -fv lsd*/lsd.1 /usr/local/share/man/man1
128 cd -
129 sudo rm -rf "$TEMP_DIR"
130 sudo chown -R root:root /usr/local/bin
131 sudo chown -R root:root /usr/local/share/man/man1
132
133[group('utils')]
134install-bat:
135 #!/usr/bin/env bash
136
137 url=$(curl -s https://api.github.com/repos/sharkdp/bat/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep "x86_64-unknown-linux-gnu.tar.gz" | tr -d '"')
138 digest=$(curl -s https://api.github.com/repos/sharkdp/bat/releases/latest | jq -c '.assets.[] | select(.browser_download_url | contains("x86_64-unknown-linux-gnu.tar.gz")) | .digest' | tr -d '"' | awk -F: '{print $2}')
139
140 TEMP_DIR=$(mktemp -d)
141 cd "$TEMP_DIR"
142 curl -SL -O "$url"
143
144 if ! echo "${digest} $(basename $url)" | sha256sum -c; then
145 exit 1
146 fi
147
148 tar -xvzf bat*.tar.gz
149 sudo cp -fv bat*/bat /usr/local/bin
150 sudo cp -fv bat*/bat.1 /usr/local/share/man/man1
151 cd -
152 sudo rm -rf "$TEMP_DIR"
153 sudo chown -R root:root /usr/local/bin
154 sudo chown -R root:root /usr/local/share/man/man1
155
156[group('utils')]
157install-bat-extras:
158 #!/usr/bin/env bash
159
160 url=$(curl -s https://api.github.com/repos/eth-p/bat-extras/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep ".zip" | tr -d '"')
161
162 TEMP_DIR=$(mktemp -d)
163 cd "$TEMP_DIR"
164 curl -SL -O "$url"
165 unzip bat-extras*.zip
166 sudo rsync -avz ./bin/ /usr/local/bin
167 sudo rsync -avz ./man/ /usr/local/share/man/man1
168 cd -
169 sudo rm -rf "$TEMP_DIR"
170 sudo chown -R root:root /usr/local/bin
171 sudo chown -R root:root /usr/local/share/man/man1
172
173[group('utils')]
174install-cosign:
175 #!/usr/bin/env bash
176
177 url=$(curl -s https://api.github.com/repos/sigstore/cosign/releases/latest | sed -n 's/.*"browser_download_url": //p' | grep "cosign-linux-amd64" | head -n 1 | tr -d '"')
178 digest=$(curl -s https://api.github.com/repos/sigstore/cosign/releases/latest | jq -c '.assets.[] | select(.browser_download_url=="'$url'") | .digest' | tr -d '"' | awk -F: '{print $2}')
179
180 TEMP_DIR=$(mktemp -d)
181 cd "$TEMP_DIR"
182 curl -SL -O "$url"
183
184 if ! echo "${digest} $(basename $url)" | sha256sum -c; then
185 exit 1
186 fi
187
188 sudo cp -fv cosign-linux-amd64 /usr/local/bin/cosign
189 cd -
190 sudo rm -rf "$TEMP_DIR"
191 sudo chmod +x /usr/local/bin/cosign
192 sudo chown root:root /usr/local/bin/cosign
193
194[group('utils')]
195install-wayback:
196 #!/usr/bin/env bash
197
198 TEMP_DIR=$(mktemp -d)
199 cd "$TEMP_DIR"
200 curl -fsSL https://github.com/wabarc/wayback/raw/main/install.sh | sh
201 sudo cp -fv bin/wayback /usr/local/bin
202 cd -
203 sudo rm -rf "$TEMP_DIR"
204 sudo chown root:root /usr/local/bin/wayback
205
206# vim: ai et ft=just sts=4 sw=4 ts=4