#!/bin/sh
# Straight Chaos agent installer.
#
#   curl -fsSL https://get.straightchaos.com | sh
#
# Optionally export SCA_TOKEN and SCA_CONTROL_PLANE first and this will also
# install + start the systemd service for you:
#
#   curl -fsSL https://get.straightchaos.com \
#     | SCA_TOKEN=sc_live_xxx SCA_CONTROL_PLANE=https://app.straightchaos.com sh
set -e

VERSION="${SCA_VERSION:-latest}"
BASE="${SCA_DOWNLOAD_BASE:-https://get.straightchaos.com}"
BIN=/usr/local/bin/chaos

[ "$(uname -s)" = "Linux" ] || { echo "Straight Chaos requires Linux."; exit 1; }
case "$(uname -m)" in
  x86_64|amd64)  arch=amd64 ;;
  aarch64|arm64) arch=arm64 ;;
  *) echo "unsupported architecture: $(uname -m)"; exit 1 ;;
esac

echo "Installing chaos ($VERSION, linux/$arch)..."
tmp="$(mktemp)"
curl -fsSL "$BASE/$VERSION/chaos-linux-$arch" -o "$tmp"
chmod +x "$tmp"
sudo mv "$tmp" "$BIN"
echo "Installed -> $BIN"

command -v tc >/dev/null 2>&1 || \
  echo "WARNING: 'tc' (iproute2) not found. Install it before running real experiments (apt/yum install iproute2)."

if [ -n "$SCA_TOKEN" ] && [ -n "$SCA_CONTROL_PLANE" ]; then
  echo "Configuring systemd service..."
  sudo mkdir -p /etc/straightchaos
  sudo tee /etc/straightchaos/agent.env >/dev/null <<EOF
SCA_CONTROL_PLANE=$SCA_CONTROL_PLANE
SCA_TOKEN=$SCA_TOKEN
SCA_DEVICE=${SCA_DEVICE:-eth0}
EOF
  sudo chmod 600 /etc/straightchaos/agent.env
  curl -fsSL "$BASE/chaos-agent.service" | sudo tee /etc/systemd/system/chaos-agent.service >/dev/null
  sudo systemctl daemon-reload
  sudo systemctl enable --now chaos-agent
  echo "Service started. Check: systemctl status chaos-agent"
else
  echo
  echo "Next: connect this host to your control plane:"
  echo "  sudo chaos agent --control-plane <url> --token <token>"
fi
