Last active
July 31, 2021 01:04
-
-
Save CoconutMacaroon/6095a188e23cb413f3a271fab8d728e1 to your computer and use it in GitHub Desktop.
Install (some of) the tools from Modern Unix
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
usage() { | |
echo "TkFNRQogICBpbnN0YWxsLW1vZGVybi11bml4LnNoIC0gSW5zdGFsbCBzb21lIHVzZWZ1bCB1dGlsaXRpZXMgZnJvbSBNb2Rlcm4gVW5peAoKU1lOT1BTSVMKICAgaW5zdGFsbC1tb2Rlcm4tdW5peC5zaCBbT1BUSU9OXQoKREVTQ1JJUFRJT04KICAgSW5zdGFsbCB1dGlsaXRpZXMgZnJvbSBNb2Rlcm4gVW5peAoKICAgLWEKICAgICAgQ3JlYXRlIGFsaWFzZXMgZm9yIGNvbW1hbmRzIGJlaW5nIGluc3RhbGxlZCBpbiB+Ly5iYXNocmMKCiAgIC1iCiAgICAgICBJbnN0YWxsIGJhdCwgYSByZXBsYWNlbWVudCBmb3IgY2F0CgogICAtZAogICAgICBJbnN0YWxsIGR1ZiwgYSByZXBsYWNlbWVudCBmb3IgZHUKCiAgIC1oCiAgICAgICBQcmludCB0aGlzIGhlbHAKCiAgIC1sCiAgICAgICBJbnN0YWxsIGxzZCwgYSByZXBsYWNlbWVudCBmb3IgbHMgLSBBUk0gdmVyc2lvbgoKICAgLWYKICAgICAgIEluc3RhbGwgZnNmLCBhIGZ1enp5LWZpbmRlcgoKICAgLXQKICAgICAgIEluc3RhbGwgdGxkciwgaGVscC1wYWdlcyB3aXRoIGV4YW1wbGVzIGZvciBjb21tYW5kcyAtIFJlcXVpcmVzIG5vZGUuanMvbnBtIHRvIGJlIGluc3RhbGxlZAo=" | | |
base64 --decode | |
} | |
update() { | |
sudo apt-get update | |
} | |
# if no arguments provided | |
if [[ ${#} -eq 0 ]]; then | |
echo "At least one argument is required." >&2 | |
echo "Try 'install-modern-unix.sh -h' for more information." >&2 | |
exit 1 | |
fi | |
updated=false | |
# process the different options | |
while getopts ":abdfhlt" o; do | |
case "${o}" in | |
a) echo 'Creating aliases in ~/.bashrc' && echo 'alias ls="lsd" && alias cat="batcat" && alias du="duf"' | tee -a ~/.bashrc ;; | |
b) | |
if dpkg -s bat >/dev/null 2>&1; then | |
echo "Package 'bat' already installed. Skipping." | |
else | |
echo 'Installing bat' | |
if [ "$updated" = false ]; then | |
update | |
updated=true | |
fi && | |
sudo apt-get install bat | |
fi | |
;; | |
d) | |
if dpkg -s duf >/dev/null 2>&1; then | |
echo "Package 'duf' already installed. Skipping." | |
else | |
echo "Installing duf - ARM version" | |
mkdir modern-unix-install-duf-cache >/dev/null 2>&1 || { | |
echo 'Error creating directory "modern-unix-install-duf-cache". Perhaps it already exists?' >&2 | |
exit 1 | |
} && | |
curl -sSL https://github.com/muesli/duf/releases/download/v0.6.2/duf_0.6.2_linux_arm64.deb -o ./modern-unix-install-duf-cache/a.deb && | |
sudo dpkg -i ./modern-unix-install-duf-cache/a.deb | |
rm -r modern-unix-install-duf-cache | |
fi | |
;; | |
h) usage ;; | |
l) | |
if dpkg -s lsd >/dev/null 2>&1; then | |
echo "Package 'lsd' already installed. Skipping." | |
else | |
echo "Installing lsd - ARM version" | |
mkdir modern-unix-install-lsd-cache >/dev/null 2>&1 || { | |
echo 'Error creating directory "modern-unix-install-lsd-cache". Perhaps it already exists?' >&2 | |
exit 1 | |
} && | |
curl -sSL https://github.com/Peltoche/lsd/releases/download/0.20.1/lsd_0.20.1_arm64.deb -o ./modern-unix-install-lsd-cache/a.deb && | |
sudo dpkg -i ./modern-unix-install-lsd-cache/a.deb | |
rm -r modern-unix-install-lsd-cache | |
fi | |
;; | |
f) | |
if dpkg -s fzf >/dev/null 2>&1; then | |
echo "Package 'fzf' already installed. Skipping." | |
else | |
echo 'Installing fzf' | |
if [ "$updated" = false ]; then | |
update | |
updated=true | |
fi && | |
sudo apt-get install fzf | |
fi | |
;; | |
t) echo 'Installing tldr' && npm install -g tldr ;; | |
\?) | |
echo "install-modern-unix.sh: invalid option -- '$OPTARG'" && | |
echo "Try 'install-modern-unix.sh -h' for more information." >&2 && | |
exit 1 | |
;; | |
esac | |
done |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment