#!/bin/sh
set -eu

os="$(uname -s)"
arch="$(uname -m)"

case "$os:$arch" in
  Linux:x86_64|Linux:amd64) target="linux-x64" ;;
  Linux:aarch64|Linux:arm64) target="linux-arm64" ;;
  Darwin:x86_64|Darwin:amd64) target="darwin-x64" ;;
  Darwin:arm64) target="darwin-arm64" ;;
  MINGW*:x86_64|MSYS*:x86_64|CYGWIN*:x86_64) target="windows-x64.exe" ;;
  MINGW*:aarch64|MSYS*:aarch64|CYGWIN*:aarch64|MINGW*:arm64|MSYS*:arm64|CYGWIN*:arm64) target="windows-arm64.exe" ;;
  *) echo "unsupported platform: $os $arch" >&2; exit 1 ;;
esac

bin_dir="${ASIUS_SSH_BIN_DIR:-$HOME/.asius/bin}"
bin="$bin_dir/asius-ssh-$target"
url="${ASIUS_SSH_DOWNLOAD_URL:-https://ssh.asius.ai/bin/asius-ssh-$target}"

mkdir -p "$bin_dir"
if [ ! -x "$bin" ] || [ "${ASIUS_SSH_UPDATE:-0}" = "1" ]; then
  tmp="$bin.tmp.$$"
  if command -v curl >/dev/null 2>&1; then
    curl -fsSL "$url" -o "$tmp"
  elif command -v wget >/dev/null 2>&1; then
    wget -qO "$tmp" "$url"
  else
    echo "curl or wget is required to download $url" >&2
    exit 1
  fi
  chmod 755 "$tmp"
  mv "$tmp" "$bin"
fi

exec "$bin" "$@"
