#!/usr/bin/env bash
set -euo pipefail

SELF_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=/usr/local/libexec/brixcli/common.sh
source "${SELF_DIR%/bin}/libexec/brixcli/common.sh"

usage() {
  cat <<'EOF'
Usage:
  access-agent <agent-name> [--tmux]

Examples:
  access-agent agent7
  access-agent agent7 --tmux
EOF
}

main() {
  require_root
  load_config

  local agent=""
  local tmux_mode=0

  while [[ $# -gt 0 ]]; do
    case "$1" in
      --tmux)
        tmux_mode=1
        ;;
      -h|--help)
        usage
        exit 0
        ;;
      *)
        [[ -z "${agent}" ]] || die "unexpected argument: $1"
        agent="$1"
        ;;
    esac
    shift
  done

  [[ -n "${agent}" ]] || { usage; exit 1; }

  validate_agent_name "${agent}"
  agent_must_exist "${agent}"

  if [[ "${tmux_mode}" -eq 1 ]]; then
    exec runuser -u "${agent}" -- tmux new-session -A -D -s main -c "/home/${agent}"
  else
    exec runuser -l "${agent}"
  fi
}

main "$@"
