haste-it/install.sh

44 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
INSTALL_DIR="/usr/local/bin"
BINARY_NAME="haste-it"
BASE_URL="https://git.nixc.us/Nixius/haste-it/raw/branch/main/dist"
declare -A binaries
binaries["linux/amd64"]="haste-it_linux_amd64"
binaries["linux/arm64"]="haste-it_linux_arm64"
binaries["linux/arm/v7"]="haste-it_linux_arm"
binaries["darwin/amd64"]="haste-it_darwin_amd64"
binaries["darwin/arm64"]="haste-it_darwin_arm64"
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
case $ARCH in
x86_64) ARCH="amd64" ;;
arm64 | aarch64) ARCH="arm64" ;;
arm*) ARCH="arm/v7" ;;
esac
KEY="${OS}/${ARCH}"
if [[ -z "${binaries[$KEY]}" ]]; then
echo "No pre-built binary for your system architecture ($KEY)."
exit 1
fi
BINARY_URL="${BASE_URL}/${binaries[$KEY]}"
echo "Downloading and installing $BINARY_NAME from $BINARY_URL..."
sudo curl -sSL "$BINARY_URL" -o "${INSTALL_DIR}/${BINARY_NAME}"
# Verify the downloaded file is not an error message or too small
if [[ -f "${INSTALL_DIR}/${BINARY_NAME}" && $(wc -c <"${INSTALL_DIR}/${BINARY_NAME}") -gt 1000 ]]; then
sudo chmod +x "${INSTALL_DIR}/${BINARY_NAME}"
echo "Installed $BINARY_NAME to $INSTALL_DIR"
else
echo "Failed to download or install $BINARY_NAME. The downloaded file is too small or invalid."
sudo rm -f "${INSTALL_DIR}/${BINARY_NAME}"
exit 1
fi