#!/usr/bin/env bash # Instalează pe LXC 102 (userul `work`) mediul tmux + sandbox + statusline: # ~/.local/bin/{sbt,agents,sb} # /home/workspace/.agent/{statusline.sh,bootstrap-statusline.sh} # statusLine în ~/.claude/settings.json (pentru claude rulat pe host) # # Se rulează DIN directorul care conține scripturile (acest scripts/ copiat pe LXC 102): # su - work -c 'cd /tmp/sbt-install && ./install-sbt.sh' # # Idempotent — poate fi rulat de câte ori e nevoie. set -euo pipefail SRC="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" BIN="$HOME/.local/bin" AGENT_DIR="/home/workspace/.agent" CFG="$HOME/.claude/settings.json" STATUSLINE="$AGENT_DIR/statusline.sh" [ "$(id -un)" = "work" ] || echo "ATENȚIE: rulezi ca $(id -un), nu ca 'work'." # --- 1. scripturile de pe host --- mkdir -p "$BIN" for f in sbt agents sb; do install -m 755 "$SRC/$f" "$BIN/$f" echo "instalat $BIN/$f" done # --- 2. statusline pe volumul partajat cu sandbox-ul --- # /home/workspace e bind-mount virtiofs, singurul loc persistent văzut identic # din host și din sandbox (/home/agent din sandbox e overlay efemer). mkdir -p "$AGENT_DIR" install -m 755 "$SRC/statusline.sh" "$AGENT_DIR/statusline.sh" install -m 644 "$SRC/bootstrap-statusline.sh" "$AGENT_DIR/bootstrap-statusline.sh" echo "instalat $AGENT_DIR/{statusline.sh,bootstrap-statusline.sh}" # --- 3. statusline și pentru claude rulat direct pe host --- mkdir -p "$(dirname "$CFG")" [ -f "$CFG" ] || printf '{}\n' > "$CFG" if [ "$(jq -r '.statusLine.command // ""' "$CFG" 2>/dev/null)" != "$STATUSLINE" ]; then tmp=$(mktemp) if jq --arg c "$STATUSLINE" '.statusLine = {type: "command", command: $c}' "$CFG" > "$tmp"; then mv "$tmp" "$CFG"; echo "statusLine adăugat în $CFG" else rm -f "$tmp"; echo "EȘEC: $CFG nu e JSON valid — adaugă statusLine manual." >&2 fi else echo "statusLine deja configurat în $CFG" fi # --- 4. verificări --- echo "--- verificări ---" for c in tmux sbx jq; do command -v "$c" >/dev/null && echo "ok: $c" || echo "LIPSĂ: $c" done bash -n "$BIN/sbt" && echo "ok: sintaxă sbt" grep -q "$HOME/.local/bin" <<<"$PATH" && echo "ok: ~/.local/bin în PATH" \ || echo "ATENȚIE: adaugă ~/.local/bin în PATH (~/.profile)" echo echo "Gata. Pornește sandbox-ul și o sesiune: agents up && sbt"