#!/bin/sh
# knelerf-toolbox — front door to the on-demand perf toolbox LXC on this node.
# usage: knelperf-toolbox run '<cmd>'   (starts the LXC if stopped, runs, leaves it up)
#        knelperf-toolbox shell         (interactive)
#        knelperf-toolbox start|stop|status
# The LXC (vmid 950) is STOPPED at rest — zero footprint; stop it when done.
# Docs: https://community.turnsys.com/t/328
VMID=${KNELPERF_TOOLBOX_VMID:-950}

ensure_running() {
  pct status "$VMID" 2>/dev/null | grep -q running && return 0
  pct start "$VMID"
  i=0
  until pct exec "$VMID" -- true 2>/dev/null; do
    i=$((i + 1)); [ $i -gt 45 ] && { echo "boot timeout" >&2; return 1; }
    sleep 2
  done
}

case "${1:-help}" in
  run)    shift; ensure_running && pct exec "$VMID" -- sh -c "$*" ;;
  shell)  ensure_running && pct enter "$VMID" ;;
  start)  ensure_running ;;
  stop)   pct shutdown "$VMID" --timeout 60 2>/dev/null || pct stop "$VMID" ;;
  status) pct status "$VMID" 2>/dev/null || echo "vmid $VMID not present" ;;
  *)      sed -n '2,6p' "$0" | sed 's/^# \?//' ;;
esac
