#!/bin/bash set -e REPO="slowmove/applaunch" INSTALL_DIR="/usr/local/bin" FALLBACK_DIR="$HOME/.local/bin" BINARY_NAME="applaunch" echo "Installing applaunch..." echo "" OS=$(uname -s | tr '[:upper:]' '[:lower:]') ARCH=$(uname -m) case "$ARCH" in x86_64) ARCH="amd64" ;; aarch64|arm64) ARCH="arm64" ;; *) echo "Error: Unsupported architecture: $ARCH" echo "Supported architectures: x86_64 (amd64), aarch64 (arm64)" exit 1 ;; esac case "$OS" in linux) ;; darwin) ;; *) echo "Error: Unsupported operating system: $OS" echo "Supported operating systems: Linux, macOS (Darwin)" exit 1 ;; esac echo "Platform: $OS ($ARCH)" echo "Fetching latest version..." LATEST=$(curl -sL "https://api.github.com/repos/${REPO}/releases/latest" | \ grep '"tag_name"' | cut -d'"' -f4) if [ -z "$LATEST" ]; then echo "Error: Could not determine latest version" echo "Please visit https://github.com/${REPO}/releases to download manually" exit 1 fi echo "Version: $LATEST" FILENAME="${BINARY_NAME}_${OS}_${ARCH}" TARBALL="${FILENAME}.tar.gz" DOWNLOAD_URL="https://github.com/${REPO}/releases/download/${LATEST}/${TARBALL}" echo "Downloading..." TEMP_DIR=$(mktemp -d) curl -sL "$DOWNLOAD_URL" -o "${TEMP_DIR}/${TARBALL}" echo "Extracting..." tar -xzf "${TEMP_DIR}/${TARBALL}" -C "$TEMP_DIR" INSTALL_TARGET="" if [ -w "$INSTALL_DIR" ]; then INSTALL_TARGET="${INSTALL_DIR}/${BINARY_NAME}" else INSTALL_TARGET="${FALLBACK_DIR}/${BINARY_NAME}" mkdir -p "$FALLBACK_DIR" fi mv "${TEMP_DIR}/${BINARY_NAME}" "$INSTALL_TARGET" chmod +x "$INSTALL_TARGET" rm -rf "$TEMP_DIR" echo "" echo "✓ Installation complete!" echo "" echo "Installed to: $INSTALL_TARGET" echo "" echo "To run applaunch, run:" echo " $INSTALL_TARGET" echo "" echo "To update in the future:" echo " $INSTALL_TARGET --update" echo "" echo "For more information, visit:" echo " https://github.com/${REPO}"