#!/bin/sh
# AC installer — served at https://get.500.sh
# Usage: curl -fsSL https://get.500.sh | sh -s -- join <enroll-code>
set -e

OS="$(uname -s)"
ARCH="$(uname -m)"
if [ "$OS" != "Linux" ] || [ "$ARCH" != "x86_64" ]; then
  echo "AC install: only linux-x86_64 is available from this server today (detected $OS/$ARCH)." >&2
  echo "Nothing was installed." >&2
  exit 1
fi

BASE="https://get.500.sh/dist/linux-x86_64"
DEST="/usr/local/bin"
TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT

echo "AC install: downloading ah/ac for linux-x86_64..." >&2
curl -fsSL "$BASE/ah" -o "$TMP/ah"
curl -fsSL "$BASE/ac" -o "$TMP/ac"
chmod +x "$TMP/ah" "$TMP/ac"

SUDO=""
if [ "$(id -u)" != "0" ]; then
  if [ ! -w "$DEST" ]; then
    SUDO="sudo"
  fi
fi

$SUDO mv "$TMP/ah" "$DEST/ah"
$SUDO mv "$TMP/ac" "$DEST/ac"
echo "AC install: installed $DEST/ah and $DEST/ac" >&2

# This cloud's own boot relay — config data, not a user secret. Overridable by an
# already-exported AH_CLOUD_BOOTSTRAP so an operator testing a different relay is not
# silently overridden.
: "${AH_CLOUD_BOOTSTRAP:=ac-boot-v1-QUNKMQE6prmRjP8-_9CtJRJU4oBSDeWl11Q8J6NjMnuQcfVLaOdGgX68f09DacV4kI5-Tivq1Wc4huBS93_bm1P0-AEHupR_na2dq12FRZ4ty5WChq99xckRaTuB4C_iUptX8GUAQwB3c3M6Ly9yZWxheS41MDAuc2g6NDQzLyNHQ1pUQXBDRk9NblFPb3FJRlNOOWlQNG45QUhEWldYeU9jdnVjRFk2ZmdVhTptbAAAAAAgAGY0YzlhMWU3NGFmMDNmNGNiMjkzNmU2OWJmODhjZGQxQwB3c3M6Ly9yZWxheS41MDAuc2g6NDQzLyNHQ1pUQXBDRk9NblFPb3FJRlNOOWlQNG45QUhEWldYeU9jdnVjRFk2ZmdV7hTek6T15zT0Oy1xtUkgvEBlcS3OINxCkwhy61_2tCMKzQzCjbThkrZc47UgCkZ189qdNP9dHQW5JCNRctQXAA}"
export AH_CLOUD_BOOTSTRAP

if [ "$#" -eq 0 ]; then
  echo "AC install: nothing to join. Run: $DEST/ah join <enroll-code>" >&2
  exit 0
fi

exec "$DEST/ah" "$@"
