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

BIN_URL="${TELL_BIN_URL:-https://tell.pawr.link/tell}"
TARGET_DIR="${TELL_INSTALL_DIR:-/usr/local/bin}"
TARGET_PATH="$TARGET_DIR/tell"

if ! command -v curl >/dev/null 2>&1; then
  echo "ERROR: curl is required" >&2
  exit 1
fi

if [ ! -d "$TARGET_DIR" ]; then
  echo "Creating $TARGET_DIR ..."
  sudo mkdir -p "$TARGET_DIR"
fi

echo "Installing tell from $BIN_URL -> $TARGET_PATH"

if [ -w "$TARGET_DIR" ]; then
  curl -fsSL "$BIN_URL" -o "$TARGET_PATH"
  chmod 755 "$TARGET_PATH"
else
  tmp="$(mktemp)"
  curl -fsSL "$BIN_URL" -o "$tmp"
  sudo mv "$tmp" "$TARGET_PATH"
  sudo chmod 755 "$TARGET_PATH"
fi

echo "tell installed at $TARGET_PATH"
resolved="$(command -v tell || true)"
if [ -n "$resolved" ] && [ "$resolved" != "$TARGET_PATH" ]; then
  echo "WARNING: command -v tell resolves to $resolved, not $TARGET_PATH. Put $TARGET_DIR earlier on PATH to use this install." >&2
elif [ -z "$resolved" ]; then
  echo "NOTE: $TARGET_DIR is not currently on PATH." >&2
fi

echo "Run: tell doctor"
echo "Recommended key setup: export X402_PRIVATE_KEY_CMD='secret-tool lookup app x402 wallet main'"
