#!/bin/sh set -eu APP_NAME="kaino" DOWNLOAD_BASE_URL="${KAINO_DOWNLOAD_BASE_URL:-https://github.com/Kainotomic/kaino-code-releases/releases/latest/download}" TARGET_NAME="$APP_NAME" OS=$(uname -s) ARCH=$(uname -m) case "$OS:$ARCH" in Darwin:arm64) ASSET_NAME="kaino-darwin-arm64" ;; Darwin:x86_64) ASSET_NAME="kaino-darwin-x64" ;; Linux:x86_64) ASSET_NAME="kaino-linux-x64" ;; Linux:aarch64|Linux:arm64) ASSET_NAME="kaino-linux-arm64" ;; MINGW*:x86_64|MSYS*:x86_64|CYGWIN*:x86_64) ASSET_NAME="kaino-windows-x64.exe" TARGET_NAME="kaino.exe" ;; *) echo "Unsupported platform: $OS $ARCH" >&2 echo "On native Windows PowerShell, run: irm https://kcode.kaino.dev/install.ps1 | iex" >&2 exit 1 ;; esac if [ -n "${KAINO_INSTALL_DIR:-}" ]; then INSTALL_DIR="$KAINO_INSTALL_DIR" elif [ -d "$HOME/.local/bin" ] || echo ":$PATH:" | grep -q ":$HOME/.local/bin:"; then INSTALL_DIR="$HOME/.local/bin" else INSTALL_DIR="$HOME/bin" fi mkdir -p "$INSTALL_DIR" TMP_FILE=$(mktemp) trap 'rm -f "$TMP_FILE"' EXIT DOWNLOAD_URL="$DOWNLOAD_BASE_URL/$ASSET_NAME" echo "Downloading $APP_NAME for $OS $ARCH..." if ! curl -fsSL "$DOWNLOAD_URL" -o "$TMP_FILE"; then echo "Failed to download $DOWNLOAD_URL" >&2 echo "A release binary for this platform may not be published yet." >&2 exit 1 fi chmod +x "$TMP_FILE" mv "$TMP_FILE" "$INSTALL_DIR/$TARGET_NAME" echo "Installed $APP_NAME to $INSTALL_DIR/$TARGET_NAME" case ":$PATH:" in *":$INSTALL_DIR:"*) ;; *) echo "Add this to your shell profile to make '$APP_NAME' available globally:" >&2 printf ' export PATH="%s:$PATH"\n' "$INSTALL_DIR" >&2 ;; esac echo "Run '$APP_NAME' to launch Kaino Code."