#!/bin/sh # agent-helm — klient-installer (självständig binär, Node + node-pty inbäddat). # # curl -fsSL https://gitea.brasse-pc.eu/brasse/agent-helm/raw/branch/main/install.sh | sh # # Valfria env-vars (annars defaults / fyll i config efteråt): # AGENT_HELM_TOKEN=... delad token mot servern # AGENT_HELM_SERVER=wss://... server-URL (default wss://rcai.brasse-pc.eu) # AGENT_CMD=gemini kommandot som körs i pty:n # PREFIX=/usr/local install-prefix för binären set -eu OWNER=brasse REPO=agent-helm BASE=https://gitea.brasse-pc.eu API="$BASE/api/v1/repos/$OWNER/$REPO" # --- OS + arkitektur --- [ "$(uname -s)" = "Linux" ] || { echo "agent-helm: bara Linux stöds just nu"; exit 1; } case "$(uname -m)" in x86_64|amd64) ARCH=x64 ;; aarch64|arm64) ARCH=arm64 ;; *) echo "agent-helm: arkitektur $(uname -m) stöds inte (endast x64/arm64)"; exit 1 ;; esac ASSET="agent-helm-linux-$ARCH" command -v curl >/dev/null 2>&1 || { echo "agent-helm: curl krävs"; exit 1; } # --- senaste release-tag --- echo "agent-helm: slår upp senaste release ..." TAG=$(curl -fsSL "$API/releases/latest" | tr ',' '\n' | grep -m1 '"tag_name"' | cut -d'"' -f4) [ -n "${TAG:-}" ] || { echo "agent-helm: hittade ingen release på $BASE"; exit 1; } URL="$BASE/$OWNER/$REPO/releases/download/$TAG/$ASSET" # --- bin-katalog (root -> /usr/local/bin, annars sudo, annars ~/.local/bin) --- PREFIX="${PREFIX:-/usr/local}" SUDO="" if [ "$(id -u)" = 0 ] || [ -w "$PREFIX/bin" ]; then BIN="$PREFIX/bin" elif command -v sudo >/dev/null 2>&1; then BIN="$PREFIX/bin"; SUDO=sudo else BIN="$HOME/.local/bin"; mkdir -p "$BIN" fi echo "agent-helm: hämtar $ASSET ($TAG) -> $BIN/agent-helm" tmp=$(mktemp) curl -fSL "$URL" -o "$tmp" chmod +x "$tmp" $SUDO install -m 0755 "$tmp" "$BIN/agent-helm" rm -f "$tmp" # --- config --- CFGDIR="$HOME/.config/agent-helm" CFG="$CFGDIR/config.env" mkdir -p "$CFGDIR" if [ ! -f "$CFG" ]; then cat > "$CFG" < "$UNITDIR/agent-helm.service" <