#!/usr/bin/env bash set -euo pipefail VERSION=${VERSION:-${1:?Provide VERSION env or arg, e.g. VERSION=1.0.0 bash grokkit-install.sh}} GITEA_BASE=https://repos.gmgauthier.com/gmgauthier/grokkit # Detect platform OS=$(uname -s | tr '[:upper:]' '[:lower:]') case "$OS" in linux) OS=linux ;; darwin) OS=darwin ;; esac ARCH=$(uname -m) case "$ARCH" in x86_64|amd64) ARCH=amd64 ;; arm64|aarch64) ARCH=arm64 ;; esac ASSET="grokkit-${OS}-${ARCH}-v${VERSION}.tar.gz" echo "Installing grokkit ${VERSION} for ${OS}/${ARCH}..." TEMP_DIR=$(mktemp -d) #trap 'rm -rf "${TEMP_DIR}" EXIT' cd "${TEMP_DIR}" # Download echo "Downloading From ${GITEA_BASE}/releases/download/v${VERSION}/${ASSET}" curl -fL "${GITEA_BASE}/releases/download/v${VERSION}/${ASSET}" -o asset.tar.gz #echo "Downloading checksums..." #curl -fL "${GITEA_BASE}/releases/download/v${VERSION}/checksums.txt" -o checksums.txt # Verify checksum #echo "Verifying checksums..." #HASH=$(grep " ${ASSET}$" checksums.txt | cut -d " " -f1) #echo "${HASH} asset.tar.gz" | shasum -a 256 --check - || { echo "Checksum mismatch!"; exit 1; } # Extract echo "Extracting asset" tar xzf asset.tar.gz BINARY="grokkit-${OS}-${ARCH}" # Install echo "Installing ${BINARY}..." INSTALL_DIR="${HOME}/.local/bin" mkdir -p "${INSTALL_DIR}" mv "${BINARY}" "${INSTALL_DIR}/grokkit" chmod +x "${INSTALL_DIR}/grokkit" echo "✅ grokkit ${VERSION} installed to ${INSTALL_DIR}/grokkit" echo "Add to PATH if needed: export PATH=\"${INSTALL_DIR}:\$PATH\"" grokkit version