#!/bin/bash
#
# Instalador do Tivra — https://get.tivrai.dev/install.sh
#
# Usage:
#   curl -fsSL https://get.tivrai.dev/install.sh | bash
#
set -e

case "$(uname -s)" in
    Darwin) os="macos" ;;
    Linux)  os="linux" ;;
    *)      echo "Sistema não suportado: $(uname -s)" >&2; exit 1 ;;
esac

case "$(uname -m)" in
    x86_64|amd64) arch="x86_64" ;;
    arm64|aarch64) arch="aarch64" ;;
    *)             echo "Arquitectura não suportada: $(uname -m)" >&2; exit 1 ;;
esac

if [ "$os" = "macos" ] && [ "$arch" = "x86_64" ]; then
    if [ "$(sysctl -n hw.optional.arm64 2>/dev/null)" = "1" ]; then
        arch="aarch64"
    fi
fi

platform="${os}-${arch}"
echo "A descarregar o tivra (${platform})..." >&2

BIN_DIR="$HOME/.tivra/bin"
mkdir -p "$BIN_DIR"
tmp="$BIN_DIR/tivra.tmp.$$"

if ! curl -fsSL "https://get.tivrai.dev/dl/${platform}" -o "$tmp"; then
    echo "Erro: não foi possível descarregar o tivra para ${platform}." >&2
    rm -f "$tmp"
    exit 1
fi

chmod +x "$tmp"
if ! "$tmp" --version >/dev/null 2>&1; then
    echo "Erro: o binário descarregado não corre." >&2
    rm -f "$tmp"
    exit 1
fi
mv -f "$tmp" "$BIN_DIR/tivra"

echo "  tivra instalado em $BIN_DIR/tivra" >&2

case ":$PATH:" in
    *":$BIN_DIR:"*) ;;
    *)
        shell_rc="$HOME/.$(basename "${SHELL:-bash}")rc"
        printf '\nexport PATH="$HOME/.tivra/bin:$PATH"\n' >> "$shell_rc"
        echo "  Adicionado $BIN_DIR ao PATH em $shell_rc (reinicia o terminal)." >&2
        ;;
esac

echo "" >&2
echo "Pronto! Corre 'tivra' para começar." >&2
