2021-04-11 15:02:34 +00:00
|
|
|
#!/bin/bash
|
2024-11-29 07:39:58 +00:00
|
|
|
# Check if the script is running as root
|
2024-12-03 11:34:58 +00:00
|
|
|
# Initialize the elevated variable to ensure we can run commands as root
|
|
|
|
if [ "$EUID" -eq 0 ]; then
|
|
|
|
elevated="bash -c" # No need for sudo or su if running as root
|
|
|
|
elif command -v sudo &> /dev/null; then
|
|
|
|
elevated="sudo bash -c" # Use sudo if available
|
|
|
|
elif command -v su &> /dev/null; then
|
2024-12-03 17:19:27 +00:00
|
|
|
elevated="su root -c" # Use su if sudo isn't available
|
2024-12-03 11:34:58 +00:00
|
|
|
else
|
|
|
|
echo "Error: Neither sudo nor su is available. Unable to run command as root."
|
|
|
|
exit 1
|
|
|
|
fi
|
2024-10-21 14:06:49 +00:00
|
|
|
set -e -o pipefail
|
2021-04-17 13:57:15 +00:00
|
|
|
shopt -s nocaseglob
|
|
|
|
|
2021-04-11 15:02:34 +00:00
|
|
|
OUT_FILE=/usr/local/bin/autorestic
|
2024-11-29 07:39:58 +00:00
|
|
|
TMP_FILE=/tmp/autorestic
|
2021-04-11 15:02:34 +00:00
|
|
|
|
2021-04-17 13:57:15 +00:00
|
|
|
# Type
|
|
|
|
NATIVE_OS=$(uname | tr '[:upper:]' '[:lower:]')
|
2024-11-29 07:39:58 +00:00
|
|
|
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"
|
2021-04-17 13:57:15 +00:00
|
|
|
exit 1
|
2024-11-29 07:39:58 +00:00
|
|
|
;;
|
|
|
|
esac
|
2021-04-17 13:57:15 +00:00
|
|
|
echo $OS
|
|
|
|
|
2021-04-26 11:15:58 +00:00
|
|
|
NATIVE_ARCH=$(uname -m | tr '[:upper:]' '[:lower:]')
|
2024-11-29 07:39:58 +00:00
|
|
|
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
|
|
|
|
;;
|
|
|
|
esac
|
2021-04-17 13:57:15 +00:00
|
|
|
echo $ARCH
|
2021-04-11 15:02:34 +00:00
|
|
|
|
2022-10-18 14:17:35 +00:00
|
|
|
if ! command -v bzip2 &>/dev/null; then
|
|
|
|
echo "Missing bzip2 command. Please install the bzip2 package for your system."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2021-10-30 12:38:53 +00:00
|
|
|
wget -qO - https://api.github.com/repos/cupcakearmy/autorestic/releases/latest \
|
2021-04-17 13:57:15 +00:00
|
|
|
| grep "browser_download_url.*_${OS}_${ARCH}" \
|
2024-11-29 07:39:58 +00:00
|
|
|
| xargs | cut -d ' ' -f 2 \
|
|
|
|
| wget -O "${TMP_FILE}.bz2" -i -
|
2024-12-03 17:19:27 +00:00
|
|
|
$elevated "
|
|
|
|
bzip2 -cd ${TMP_FILE}.bz2 > ${OUT_FILE}
|
|
|
|
chmod +x ${OUT_FILE}
|
|
|
|
autorestic install
|
|
|
|
"
|
|
|
|
rm ${TMP_FILE}.bz2
|
2021-04-11 15:02:34 +00:00
|
|
|
|
2024-11-29 07:39:58 +00:00
|
|
|
echo "Successfully installed autorestic under ${OUT_FILE}"
|