#!/bin/sh
# RMM Agent — ติดตั้งบน Linux (systemd) : curl -fsSL https://ckrmm.ctkhosp.net/install.sh | sudo sh
set -eu
SERVER="https://ckrmm.ctkhosp.net"
BIN=/usr/local/bin/rmm-agent

say() { printf '==> %s\n' "$*"; }
die() { printf 'ผิดพลาด: %s\n' "$*" >&2; exit 1; }

[ "$(id -u)" = 0 ] || die "ต้องรันด้วย root เช่น: curl -fsSL $SERVER/install.sh | sudo sh"
[ "$(uname -s)" = Linux ] || die "สคริปต์นี้สำหรับ Linux เท่านั้น"
case "$(uname -m)" in x86_64|amd64) ;; *) die "รองรับเฉพาะ x86_64 (เครื่องนี้: $(uname -m))" ;; esac
command -v systemctl >/dev/null 2>&1 || die "ต้องมี systemd"

if command -v curl >/dev/null 2>&1; then
  get() { curl -fsSL --retry 3 "$1" -o "$2"; }
elif command -v wget >/dev/null 2>&1; then
  get() { wget -q -O "$2" "$1"; }
else
  die "ต้องมี curl หรือ wget"
fi
command -v sha256sum >/dev/null 2>&1 || die "ต้องมี sha256sum"

TMP=$(mktemp -d)
trap 'rm -rf "$TMP"' EXIT

say "ดาวน์โหลด agent จาก $SERVER"
get "$SERVER/download/rmm-agent-linux-amd64" "$TMP/agent"
get "$SERVER/download/rmm-agent-linux-amd64.sha256" "$TMP/agent.sha256"
WANT=$(cut -d' ' -f1 "$TMP/agent.sha256")
GOT=$(sha256sum "$TMP/agent" | cut -d' ' -f1)
[ -n "$WANT" ] && [ "$WANT" = "$GOT" ] || die "SHA-256 ของไฟล์ไม่ตรง (ได้ $GOT)"
chmod 0755 "$TMP/agent"
VER=$("$TMP/agent" version) || die "ไฟล์ที่ดาวน์โหลดรันไม่ได้"

# ติดตั้งซ้ำ/อัปเกรดบนเครื่องที่เคยลงแล้ว: หยุด service เดิมก่อน (key เดิมที่อนุมัติแล้วยังอยู่ ไม่ต้องขออนุมัติใหม่)
if [ -x "$BIN" ]; then
  say "พบการติดตั้งเดิม — หยุด service ก่อนอัปเกรด"
  "$BIN" stop >/dev/null 2>&1 || true
  "$BIN" uninstall >/dev/null 2>&1 || true
fi
install -m 0755 "$TMP/agent" "$BIN"

say "ตั้งค่าเซิร์ฟเวอร์และติดตั้ง service (รุ่น $VER)"
"$BIN" configure --server "$SERVER"
"$BIN" install
"$BIN" start
sleep 3
"$BIN" status || true

cat <<EOF

ติดตั้งเสร็จแล้ว (รุ่น $VER)
- ถ้าเป็นเครื่องใหม่: เปิดหน้า $SERVER/console/#/assets แล้วกด "อนุมัติ" ที่เครื่องนี้ในแผง "รออนุมัติ"
- ตรวจสถานะ: sudo rmm-agent status   ·   log: sudo journalctl -u RMMAgent -f
- ถอนการติดตั้ง: sudo rmm-agent stop && sudo rmm-agent uninstall && sudo rm -rf /etc/rmm-agent $BIN
EOF
