#!/usr/bin/env bash
# MINT 서버 (명령줄) 설치 — 데스크톱이 없는 Linux 서버용 (x86_64, systemd)
#
#   curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash
#   curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash -s -- --port 47100 --user <계정> --admin <아이디>
#
# 내려받은 패키지의 SHA-256을 아래 값과 비교한 뒤에만 설치합니다.
set -euo pipefail
VERSION="1.1.0"
URL="https://firebasestorage.googleapis.com/v0/b/allinone-cross-c4b6c.firebasestorage.app/o/downloads%2FMINT-Server-CLI-${VERSION}-linux-x86_64.tar.gz?alt=media"
SHA256="39e92d7b59c2f274ae2aa0c2870acc7c7d5c6c784122d6fedc5958e16aec4860"

if [ "$(id -u)" -ne 0 ]; then
    echo "관리자 권한이 필요합니다: curl -fsSL https://allinone-cross-c4b6c.web.app/install-server.sh | sudo bash" >&2
    exit 1
fi
[ "$(uname -m)" = "x86_64" ] || { echo "x86_64(64비트 Intel/AMD) Linux만 지원합니다." >&2; exit 1; }
for c in tar sha256sum; do command -v "$c" >/dev/null 2>&1 || { echo "$c 명령이 필요합니다." >&2; exit 1; }; done

TMP="$(mktemp -d)"
trap 'rm -rf "$TMP"' EXIT
echo "MINT 서버 ${VERSION} 내려받는 중..."
if command -v curl >/dev/null 2>&1; then
    curl -fsSL --proto '=https' --tlsv1.2 -o "$TMP/mint.tar.gz" "$URL"
else
    wget -q --https-only -O "$TMP/mint.tar.gz" "$URL"
fi
echo "${SHA256}  $TMP/mint.tar.gz" | sha256sum -c --status - || {
    echo "내려받은 파일의 SHA-256이 맞지 않아 설치를 중단했습니다." >&2
    exit 1
}
tar -C "$TMP" -xzf "$TMP/mint.tar.gz"
bash "$TMP/MINT-Server-CLI-${VERSION}/install.sh" "$@"
