#!/usr/bin/env sh
set -eu

resolve_real_path() {
  if command -v realpath >/dev/null 2>&1; then
    realpath "$1"
    return
  fi

  if command -v python3 >/dev/null 2>&1; then
    python3 -c 'import os,sys; print(os.path.realpath(sys.argv[1]))' "$1"
    return
  fi

  if command -v node >/dev/null 2>&1; then
    node -e 'const fs = require("node:fs"); const path = require("node:path"); console.log(fs.realpathSync(path.resolve(process.argv[1])));' "$1"
    return
  fi

  if command -v readlink >/dev/null 2>&1; then
    if readlink -f "$1" >/dev/null 2>&1; then
      readlink -f "$1"
      return
    fi
  fi

  echo "$1"
}

SCRIPT_PATH=$(resolve_real_path "$0")
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$SCRIPT_PATH")" && pwd)
REPO_ROOT=$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)
TSX_LOADER="$REPO_ROOT/node_modules/tsx/dist/loader.mjs"
CLI_MAIN="$REPO_ROOT/packages/cli/src/commands/cli-main.ts"

if [ ! -f "$TSX_LOADER" ]; then
  echo "Ricky CLI linker blocker: missing tsx loader at $TSX_LOADER. Run npm install in the Ricky monorepo before invoking the linked CLI." >&2
  exit 1
fi

exec node --conditions=development --import "$TSX_LOADER" "$CLI_MAIN" "$@"
