#!/bin/sh
set -eu

VERSION="v260904"
AMD64_URL="https://monkeycode-release.oss-cn-hangzhou.aliyuncs.com/online-package%2Fv260904%2Fmonkeycode-online-linux-amd64.tgz?Expires=1788550776&OSSAccessKeyId=LTAI5tP2W4mnLDh2HPZHZwkm&Signature=acjAH%2FjkFPDBKpx0uNtvtIsDRrs%3D"
ARM64_URL="https://monkeycode-release.oss-cn-hangzhou.aliyuncs.com/online-package%2Fv260904%2Fmonkeycode-online-linux-arm64.tgz?Expires=1788550776&OSSAccessKeyId=LTAI5tP2W4mnLDh2HPZHZwkm&Signature=PMMAcibj%2BMJPkh5t%2B3wTk8GDk%2BA%3D"
ONLINE_RESOURCES_B64="W10="

cleanup() {
  if [ -n "${TMP_DIR:-}" ] && [ -d "$TMP_DIR" ]; then
    rm -rf "$TMP_DIR"
  fi
}
trap cleanup EXIT INT TERM

if [ "$(id -u)" -ne 0 ]; then
  echo "installer must run as root"
  exit 1
fi

OS="$(uname -s)"
if [ "$OS" != "Linux" ]; then
  echo "unsupported system: $OS"
  exit 1
fi

ARCH="$(uname -m)"
case "$ARCH" in
  x86_64|amd64)
    PACKAGE_URL="$AMD64_URL"
    ;;
  aarch64|arm64|armv8l)
    PACKAGE_URL="$ARM64_URL"
    ;;
  *)
    echo "unsupported architecture: $ARCH"
    exit 1
    ;;
esac

TMP_DIR="$(mktemp -d)"
PACKAGE_FILE="$TMP_DIR/monkeycode-online.tgz"
EXTRACT_DIR="$TMP_DIR/package"
mkdir -p "$EXTRACT_DIR"

echo "Installing MonkeyCodePro online package $VERSION"
echo "Downloading package..."
curl -4fL --retry 3 --connect-timeout 20 -o "$PACKAGE_FILE" "$PACKAGE_URL"

echo "Extracting package..."
tar -xzf "$PACKAGE_FILE" -C "$EXTRACT_DIR"

INSTALL_SH="$(find "$EXTRACT_DIR" -mindepth 1 -maxdepth 2 -type f -name install.sh | head -n 1)"
if [ -z "$INSTALL_SH" ]; then
  echo "install.sh not found in package"
  exit 1
fi

chmod +x "$INSTALL_SH"
cd "$(dirname "$INSTALL_SH")"
MCAI_ONLINE_RESOURCES_B64="$ONLINE_RESOURCES_B64" ./install.sh
