2026-03-01 23:25:31 +00:00
|
|
|
#!/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:]')
|
2026-03-30 09:50:45 +00:00
|
|
|
case "$OS" in
|
2026-03-01 23:25:31 +00:00
|
|
|
linux) OS=linux ;;
|
|
|
|
|
darwin) OS=darwin ;;
|
|
|
|
|
esac
|
|
|
|
|
|
|
|
|
|
ARCH=$(uname -m)
|
2026-03-30 09:50:45 +00:00
|
|
|
case "$ARCH" in
|
2026-03-01 23:25:31 +00:00
|
|
|
x86_64|amd64) ARCH=amd64 ;;
|
|
|
|
|
arm64|aarch64) ARCH=arm64 ;;
|
|
|
|
|
esac
|
|
|
|
|
|
2026-03-30 09:50:45 +00:00
|
|
|
ASSET="grokkit-${OS}-${ARCH}-v${VERSION}.tar.gz"
|
2026-03-01 23:25:31 +00:00
|
|
|
|
2026-03-30 09:50:45 +00:00
|
|
|
echo "Installing grokkit ${VERSION} for ${OS}/${ARCH}..."
|
2026-03-01 23:25:31 +00:00
|
|
|
|
|
|
|
|
TEMP_DIR=$(mktemp -d)
|
2026-03-30 09:50:45 +00:00
|
|
|
#trap 'rm -rf "${TEMP_DIR}" EXIT'
|
2026-03-01 23:25:31 +00:00
|
|
|
|
2026-03-30 09:50:45 +00:00
|
|
|
cd "${TEMP_DIR}"
|
2026-03-01 23:25:31 +00:00
|
|
|
|
|
|
|
|
# Download
|
2026-03-30 09:50:45 +00:00
|
|
|
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
|
2026-03-01 23:25:31 +00:00
|
|
|
|
|
|
|
|
# Verify checksum
|
2026-03-30 09:50:45 +00:00
|
|
|
#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; }
|
2026-03-01 23:25:31 +00:00
|
|
|
|
|
|
|
|
# Extract
|
2026-03-30 09:50:45 +00:00
|
|
|
echo "Extracting asset"
|
2026-03-01 23:25:31 +00:00
|
|
|
tar xzf asset.tar.gz
|
2026-03-30 09:50:45 +00:00
|
|
|
BINARY="grokkit-${OS}-${ARCH}"
|
2026-03-01 23:25:31 +00:00
|
|
|
|
|
|
|
|
# Install
|
2026-03-30 09:50:45 +00:00
|
|
|
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\""
|
2026-03-01 23:25:31 +00:00
|
|
|
grokkit version
|