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

REPO_URL="https://github.com/eq-desktop/cli.git"
PIP_ARGS=()

log() { printf "\033[1;32m[+] %s\033[0m\n" "$*"; }
err() { printf "\033[1;31m[!] %s\033[0m\n" "$*" >&2; }
die() { err "$*"; exit 1; }

command -v git >/dev/null || die "git is required"

# --- parse arguments ---
while [[ $# -gt 0 ]]; do
    case "$1" in
        --pip-args)
            shift
            [[ $# -gt 0 ]] || die "--pip-args requires a value"
            PIP_ARGS+=($1)
            ;;
        *)
            die "Unknown argument: $1"
            ;;
    esac
    shift
done

tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT

if [[ "${AURELI_USE_PIPX:-0}" == "1" ]]; then
    command -v pipx >/dev/null || die "pipx is required when AURELI_USE_PIPX=1"

    log "Installing CLI (using pipx)"
    pipx install --force "git+${REPO_URL}"

else
    command -v pip >/dev/null || die "pip is required"

    log "Installing CLI (using pip)"
    pip install "${PIP_ARGS[@]}" "git+${REPO_URL}"
fi

aureli install

log "Installation complete"