use sudo if ran as user, use case instead of if

This commit is contained in:
Emanuele Bernardi 2024-11-29 08:39:58 +01:00 committed by GitHub
parent 48fa20b482
commit 14d8f7cb44
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,36 +1,41 @@
#!/bin/bash
# Check if the script is running as root
[ "$EUID" -eq 0 ] || exec sudo bash "$0" "$@"
set -e -o pipefail
shopt -s nocaseglob
OUT_FILE=/usr/local/bin/autorestic
TMP_FILE=/tmp/autorestic
# Type
NATIVE_OS=$(uname | tr '[:upper:]' '[:lower:]')
if [[ $NATIVE_OS == *"linux"* ]]; then
OS=linux
elif [[ $NATIVE_OS == *"darwin"* ]]; then
OS=darwin
elif [[ $NATIVE_OS == *"freebsd"* ]]; then
OS=freebsd
else
echo "Could not determine OS automatically, please check the release page manually: https://github.com/cupcakearmy/autorestic/releases"
case $NATIVE_OS in
*linux*)
OS=linux;;
*darwin*)
OS=darwin;;
*freebsd*)
OS=freebsd;;
*)
echo "Could not determine OS automatically, please check the release page"\
"manually: https://github.com/cupcakearmy/autorestic/releases"
exit 1
fi
;;
esac
echo $OS
NATIVE_ARCH=$(uname -m | tr '[:upper:]' '[:lower:]')
if [[ $NATIVE_ARCH == *"x86_64"* || $NATIVE_ARCH == *"amd64"* ]]; then
ARCH=amd64
elif [[ $NATIVE_ARCH == *"arm64"* || $NATIVE_ARCH == *"aarch64"* ]]; then
ARCH=arm64
elif [[ $NATIVE_ARCH == *"x86"* ]]; then
ARCH=386
elif [[ $NATIVE_ARCH == *"armv7"* ]]; then
ARCH=arm
else
echo "Could not determine Architecure automatically, please check the release page manually: https://github.com/cupcakearmy/autorestic/releases"
case $NATIVE_ARCH in
*x86_64*|*amd64*) ARCH=amd64 ;;
*arm64*|*aarch64*) ARCH=arm64 ;;
*x86*) ARCH=386 ;;
*armv7*) ARCH=arm ;;
*)
echo "Could not determine Architecure automatically, please check the"\
"release page manually: https://github.com/cupcakearmy/autorestic/releases"
exit 1
fi
;;
esac
echo $ARCH
if ! command -v bzip2 &>/dev/null; then
@ -40,11 +45,11 @@ fi
wget -qO - https://api.github.com/repos/cupcakearmy/autorestic/releases/latest \
| grep "browser_download_url.*_${OS}_${ARCH}" \
| cut -d : -f 2,3 \
| tr -d \" \
| wget -O "${OUT_FILE}.bz2" -i -
bzip2 -fd "${OUT_FILE}.bz2"
| xargs | cut -d ' ' -f 2 \
| wget -O "${TMP_FILE}.bz2" -i -
bzip2 -cd "${TMP_FILE}.bz2" > "${OUT_FILE}"
chmod +x ${OUT_FILE}
rm "${TMP_FILE}.bz2"
autorestic install
echo "Successfully installed autorestic"
echo "Successfully installed autorestic under ${OUT_FILE}"