#!/bin/sh
# Hugin installer — fetches the latest CLI binary for your platform.
# Usage:  curl -fsSL https://hugin.nu/install | sh
#
# Prefer a package manager if you have one:
#   macOS:  brew install HuginCyber/tap/hugin
#   Arch:   yay -S hugin-proxy
#   cargo:  cargo binstall hugin
set -eu

repo="HuginCyber/Hugin"
os=$(uname -s)
arch=$(uname -m)

case "$os" in
  Darwin) plat=darwin ;;
  Linux)  plat=linux ;;
  *) echo "hugin: unsupported OS '$os' — see https://hugin.nu/download" >&2; exit 1 ;;
esac
case "$arch" in
  arm64|aarch64) cpu=aarch64 ;;
  x86_64|amd64)  cpu=x86_64 ;;
  *) echo "hugin: unsupported architecture '$arch' — see https://hugin.nu/download" >&2; exit 1 ;;
esac

asset="hugin-cli-${plat}-${cpu}.tar.gz"
url="https://github.com/${repo}/releases/latest/download/${asset}"

echo "hugin: downloading ${asset} ..."
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
curl -fL "$url" | tar xz -C "$tmp"

if [ -w /usr/local/bin ]; then
  dest=/usr/local/bin; sudo_cmd=
elif command -v sudo >/dev/null 2>&1; then
  dest=/usr/local/bin; sudo_cmd=sudo
else
  dest="$HOME/.local/bin"; sudo_cmd=; mkdir -p "$dest"
fi

$sudo_cmd mv "$tmp/hugin" "$dest/hugin"
$sudo_cmd chmod +x "$dest/hugin"

echo "hugin: installed to $dest/hugin"
echo "hugin: run 'hugin' to start the proxy, or 'hugin --help' for the CLI."
case ":$PATH:" in
  *":$dest:"*) ;;
  *) echo "hugin: add $dest to your PATH to run it by name." ;;
esac
