All checks were successful
build-and-push / build (push) Successful in 10s
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
96 lines
3.0 KiB
Bash
Executable File
96 lines
3.0 KiB
Bash
Executable File
#!/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: /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" <<EOF
|
|
# agent-helm klient-config
|
|
AGENT_HELM_TOKEN=${AGENT_HELM_TOKEN:-}
|
|
SERVER_URL=${AGENT_HELM_SERVER:-wss://rcai.brasse-pc.eu}
|
|
AGENT_CMD=${AGENT_CMD:-gemini}
|
|
# AGENT_CWD=/sökväg/till/projekt
|
|
EOF
|
|
chmod 600 "$CFG"
|
|
echo "agent-helm: config skapad: $CFG"
|
|
else
|
|
echo "agent-helm: behåller befintlig config: $CFG"
|
|
fi
|
|
|
|
# --- systemd user-service (valfri) ---
|
|
UNITDIR="$HOME/.config/systemd/user"
|
|
mkdir -p "$UNITDIR"
|
|
cat > "$UNITDIR/agent-helm.service" <<EOF
|
|
[Unit]
|
|
Description=agent-helm klient (daemon)
|
|
After=network-online.target
|
|
|
|
[Service]
|
|
EnvironmentFile=$CFG
|
|
ExecStart=$BIN/agent-helm
|
|
Restart=on-failure
|
|
RestartSec=3
|
|
|
|
[Install]
|
|
WantedBy=default.target
|
|
EOF
|
|
|
|
echo ""
|
|
echo " ✓ installerad: $BIN/agent-helm (version $TAG, $ARCH)"
|
|
case ":$PATH:" in *":$BIN:"*) ;; *) echo " ⚠ lägg till $BIN i din PATH";; esac
|
|
echo ""
|
|
echo " Nästa steg:"
|
|
echo " 1) sätt token: \${EDITOR:-nano} $CFG"
|
|
echo " 2a) kör direkt: set -a; . $CFG; agent-helm"
|
|
echo " 2b) eller som tjänst: systemctl --user daemon-reload && systemctl --user enable --now agent-helm"
|