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

_ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
_RUST_BIN_DIR="$_ROOT_DIR/trash-put-rs/target"
_RUST_BIN=""
_WRAPPER_NAME="$(basename "$0")"

if [ -x "$_RUST_BIN_DIR/release/trash-put" ]; then
  _RUST_BIN="$_RUST_BIN_DIR/release/trash-put"
elif [ -x "$_RUST_BIN_DIR/debug/trash-put" ]; then
  _RUST_BIN="$_RUST_BIN_DIR/debug/trash-put"
elif command -v cargo >/dev/null 2>&1; then
  exec cargo run --manifest-path "$_ROOT_DIR/trash-put-rs/Cargo.toml" -- "$@"
fi

if [ -z "$_RUST_BIN" ]; then
  PYTHON_BOOTSTRAP='import os, sys\n\
sys.argv[0] = os.environ.get("TRASH_PUT_WRAPPER_NAME", "trash-put")\n\
from trashcli.put.main import main as python_main\n\
raise SystemExit(python_main())'
  TRASH_PUT_WRAPPER_NAME="$_WRAPPER_NAME"

  for candidate in python3 python; do
    if command -v "$candidate" >/dev/null 2>&1; then
      exec "$candidate" -c "$PYTHON_BOOTSTRAP" "$@"
    fi
  done

  echo "trash-put: no Python interpreter found" >&2
  exit 1
fi

exec "$_RUST_BIN" "$@"
