#!/usr/bin/env bash
# install-alias.sh: agent-start / agent-stop 함수를 쉘 rc에 등록
# 사용법:  bash install-alias.sh

set -e

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
BOOTSTRAP="$SCRIPT_DIR/bootstrap.sh"

if [ ! -f "$BOOTSTRAP" ]; then
  echo "[install-alias] 에러: bootstrap.sh를 찾을 수 없습니다: $BOOTSTRAP" >&2
  exit 1
fi

chmod +x "$BOOTSTRAP"

# 사용자 쉘에 맞춰 rc 파일 선택
SHELL_NAME="$(basename "${SHELL:-/bin/bash}")"
case "$SHELL_NAME" in
  zsh)  RC="$HOME/.zshrc" ;;
  bash) RC="$HOME/.bashrc" ;;
  fish) RC="$HOME/.config/fish/config.fish" ;;
  *)    RC="$HOME/.profile" ;;
esac

# 중복 등록 방지 마커
MARKER="# >>> agent-bootstrap alias >>>"
END_MARKER="# <<< agent-bootstrap alias <<<"

if grep -q "$MARKER" "$RC" 2>/dev/null; then
  echo "[install-alias] 이미 $RC 에 등록되어 있습니다. 건너뜀."
  echo "              기존 블록을 지우고 다시 실행하려면:"
  echo "              sed -i.bak '/$MARKER/,/$END_MARKER/d' \"$RC\""
  exit 0
fi

# rc 파일에 추가 (zsh/bash 공통 문법)
{
  echo ""
  echo "$MARKER"
  echo "# Slack 에이전트 부트스트랩 (agent-bootstrap 스킬 호출)"
  echo "agent-start() {"
  echo "  if [ -z \"\$1\" ]; then"
  echo "    echo '[agent-start] 사용법: agent-start <이름>' >&2"
  echo "    echo '예: agent-start 포도' >&2"
  echo "    return 1"
  echo "  fi"
  echo "  bash '$BOOTSTRAP' \"\$@\""
  echo "}"
  echo ""
  echo "agent-stop() {"
  echo "  if [ -z \"\$1\" ]; then"
  echo "    echo '[agent-stop] 사용법: agent-stop <이름>' >&2"
  echo "    return 1"
  echo "  fi"
  echo "  if tmux has-session -t \"\$1\" 2>/dev/null; then"
  echo "    # 에이전트 세션 안의 claude 에게 정리 요청을 보내고 세션 종료"
  echo "    tmux send-keys -t \"\$1\" 'agent-bootstrap 스킬의 중단 절차 실행: /loop stop, cron 삭제, Slack 취침 알림' Enter"
  echo "    echo '[agent-stop] 잠시 후 tmux kill-session -t \$1 으로 세션을 종료하세요.'"
  echo "  else"
  echo "    echo \"[agent-stop] 세션 '\$1'을 찾을 수 없습니다.\" >&2"
  echo "    return 1"
  echo "  fi"
  echo "}"
  echo ""
  echo "agent-list() {"
  echo "  echo '[agent-list] 현재 실행 중인 에이전트 tmux 세션:'"
  echo "  tmux list-sessions 2>/dev/null || echo '  (없음)'"
  echo "}"
  echo "$END_MARKER"
} >> "$RC"

echo "[install-alias] ✓ $RC 에 등록 완료."
echo "              새 터미널을 열거나 'source $RC' 를 실행한 뒤 사용하세요."
echo
echo "  agent-start <이름>    # 에이전트 기동"
echo "  agent-stop  <이름>    # 에이전트 중단"
echo "  agent-list            # 실행 중 에이전트 목록"
