#!/bin/sh

set -eu

SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
ROOT_DIR=$(CDPATH= cd -- "$SCRIPT_DIR/../.." && pwd)

platform=$(uname -s)
arch=$(uname -m)

case "$platform:$arch" in
  Darwin:arm64)
    target_triple="aarch64-apple-darwin"
    ;;
  Darwin:x86_64)
    target_triple="x86_64-apple-darwin"
    ;;
  Linux:arm64|Linux:aarch64)
    target_triple="aarch64-unknown-linux-musl"
    ;;
  Linux:x86_64)
    target_triple="x86_64-unknown-linux-musl"
    ;;
  *)
    echo "Unsupported Codex platform: $platform ($arch)" >&2
    exit 1
    ;;
esac

codex_bin="$ROOT_DIR/node_modules/@openai/codex-sdk/vendor/$target_triple/codex/codex"

has_config_override() {
  key="$1"
  shift
  expect_value=0

  for arg in "$@"; do
    if [ "$expect_value" -eq 1 ]; then
      case "$arg" in
        "$key="*)
          return 0
          ;;
      esac
      expect_value=0
    fi

    case "$arg" in
      --config)
        expect_value=1
        ;;
      --config="$key="*)
        return 0
        ;;
    esac
  done

  return 1
}

if ! has_config_override "ghost_snapshot.ignore_large_untracked_dirs" "$@"; then
  set -- "$@" --config "ghost_snapshot.ignore_large_untracked_dirs=1000"
fi

if ! has_config_override "ghost_snapshot.ignore_large_untracked_files" "$@"; then
  set -- "$@" --config "ghost_snapshot.ignore_large_untracked_files=104857600"
fi

exec "$codex_bin" "$@"
