#!/usr/bin/env bash
# install-completions.sh — install mm-harness shell completions (bash + zsh)
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
RUNNER_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
BASH_SNIPPET="source \"$RUNNER_ROOT/scripts/completions.sh\""
ZSH_SNIPPET=$'# mm-harness tab completion\nsource '"\"$RUNNER_ROOT/scripts/completions.sh\""

usage() {
  cat <<EOF
Usage: install-completions.sh [install|bash|zsh|status]

  install  Print setup lines for bash and zsh (default)
  bash     Print bash one-liner to add to ~/.bashrc
  zsh      Print zsh lines to add to ~/.zshrc
  status   Show whether completions appear installed

Tab completion: type "mm-harness " (with a trailing space) then press TAB.

After install, restart your shell or run:
  source $RUNNER_ROOT/scripts/completions.sh
EOF
}

cmd="${1:-install}"
case "$cmd" in
  -h|--help) usage; exit 0 ;;
  bash)
    printf '%s\n' "$BASH_SNIPPET"
    ;;
  zsh)
    printf '%s\n' "$ZSH_SNIPPET"
    ;;
  status)
    if [ -f "$HOME/.bashrc" ] && grep -Fq "$RUNNER_ROOT/scripts/completions.sh" "$HOME/.bashrc" 2>/dev/null; then
      echo "bash: sourced from ~/.bashrc"
    else
      echo "bash: not sourced (run: install-completions.sh bash)"
    fi
    if [ -f "$HOME/.zshrc" ] && grep -Fq "$RUNNER_ROOT/scripts/completions.sh" "$HOME/.zshrc" 2>/dev/null; then
      echo "zsh: sourced from ~/.zshrc"
    else
      echo "zsh: not sourced (run: install-completions.sh zsh)"
    fi
    ;;
  install)
    echo "Add to ~/.bashrc:"
    echo "  $BASH_SNIPPET"
    echo ""
    echo "Add to ~/.zshrc:"
    echo "  $ZSH_SNIPPET"
    echo ""
    echo "Reload now:"
    echo "  source $RUNNER_ROOT/scripts/completions.sh"
    ;;
  *)
    echo "Unknown command: $cmd" >&2
    usage >&2
    exit 2
    ;;
esac
