dotfiles for servers
at main 206 lines 6.0 kB view raw
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