#!/usr/bin/env bash
# flightschool — install the 14 FlightOps ROS 2 skills into a coding agent's skill folder.
#
#   flightschool path                         print where the shipped skills are
#   flightschool install [DIR] [--agents] [--force]
#                                             copy the skills into DIR (default .claude/skills;
#                                             --agents uses .agents/skills for Codex and others);
#                                             existing skills are kept unless --force
#   flightschool validate [DIR]               check every SKILL.md (default: the shipped skills)
set -euo pipefail
HERE=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd -P)
SHARE=${FLIGHTSCHOOL_SHARE:-$HERE/../share/flightops/flightschool}
SKILLS=$SHARE/skills

usage() { awk 'NR==1{next} /^#/{sub(/^# ?/,"");print;next} {exit}' "$0"; }
case "${1:-}" in -h|--help|"") usage; exit 0 ;; esac
[ -d "$SKILLS" ] || { printf 'flightschool: the skills are not installed in this release\n' >&2; exit 127; }

case "${1:-}" in
  path) printf '%s\n' "$SKILLS" ;;
  install)
    shift
    target=.claude/skills force=no
    while [ $# -gt 0 ]; do
      case $1 in
        --agents) target=.agents/skills ;;
        --force) force=yes ;;
        -*) printf 'flightschool: unknown option %s\n' "$1" >&2; exit 2 ;;
        *) target=$1 ;;
      esac
      shift
    done
    mkdir -p -- "$target"
    for skill in "$SKILLS"/*/; do
      name=$(basename -- "$skill")
      if [ -e "$target/$name" ] && [ "$force" = no ]; then
        printf 'kept      %s (already there; --force replaces it)\n' "$target/$name"
        continue
      fi
      rm -rf -- "${target:?}/$name"
      cp -R -- "$skill" "$target/$name"
      printf 'installed %s\n' "$target/$name"
    done
    ;;
  validate) exec "$HERE/python" "$SHARE/validate_skills.py" "${2:-$SKILLS}" ;;
  *) usage >&2; exit 2 ;;
esac
