#!/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; } # --- version: 'latest' (rullande master-bygge) om inget annat anges --- TAG="${AGENT_HELM_VERSION:-latest}" URL="$BASE/$OWNER/$REPO/releases/download/$TAG/$ASSET" # --- bin-katalog: /usr/local/bin om root/skrivbar, annars ~/.local/bin (ingen sudo). # För system-wide utan att vara root: curl -fsSL ... | sudo sh PREFIX="${PREFIX:-/usr/local}" if [ "$(id -u)" = 0 ] || { mkdir -p "$PREFIX/bin" 2>/dev/null && [ -w "$PREFIX/bin" ]; }; then BIN="$PREFIX/bin" else BIN="$HOME/.local/bin" fi mkdir -p "$BIN" echo "agent-helm: hämtar $ASSET ($TAG) -> $BIN/agent-helm" tmp=$(mktemp) curl -fSL "$URL" -o "$tmp" chmod +x "$tmp" 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" <