#!/usr/bin/env bash # Deploy script for AAMOS Admin v2 — Unified Dashboard set -uo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" AMOS_DIR="/opt/amos" PUBLIC_ADMIN="$AMOS_DIR/public/admin-v2" PORT="${PORT:-3100}" RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'; BLUE='\033[0;34m'; NC='\033[0m' STEPS_OK=0; STEPS_FAIL=0 ok() { echo -e "${GREEN}✓${NC} $*"; STEPS_OK=$((STEPS_OK + 1)); } fail() { echo -e "${RED}✗${NC} $*"; STEPS_FAIL=$((STEPS_FAIL + 1)); } info() { echo -e "${BLUE}→${NC} $*"; } warn() { echo -e "${YELLOW}⚠${NC} $*"; } echo "" echo "══════════════════════════════════════════════" echo " AAMOS Admin v2 — Deploy $(date '+%Y-%m-%d %H:%M:%S')" echo "══════════════════════════════════════════════" echo "" # ── 1. Build Go backend ──────────────────────────────────────────────────────── info "Building Go backend..." if (cd "$SCRIPT_DIR/backend" && go build -o bin/aamos-admin . 2>&1); then ok "Go backend built → backend/bin/aamos-admin" else fail "Go backend build failed" fi # ── 2. Deploy web/ → /opt/amos/public/admin-v2/ ─────────────────────────────── info "Deploying web assets → $PUBLIC_ADMIN..." mkdir -p "$PUBLIC_ADMIN" if command -v rsync &>/dev/null; then COPY_CMD="rsync -a --delete $SCRIPT_DIR/web/ $PUBLIC_ADMIN/" else COPY_CMD="cp -a $SCRIPT_DIR/web/. $PUBLIC_ADMIN/" fi if eval "$COPY_CMD" 2>&1; then FILE_COUNT=$(find "$PUBLIC_ADMIN" -type f | wc -l) ok "Web assets deployed ($FILE_COUNT files)" else fail "Web asset deploy failed" fi # ── 3. Summary ───────────────────────────────────────────────────────────────── echo "" echo "══════════════════════════════════════════════" TOTAL=$((STEPS_OK + STEPS_FAIL)) if [ $STEPS_FAIL -eq 0 ]; then echo -e " ${GREEN}DEPLOY OK${NC} — $STEPS_OK/$TOTAL steps passed" echo " Admin URL: http://127.0.0.1:$PORT/admin-v2/" echo " Backend: $SCRIPT_DIR/backend/bin/aamos-admin" else echo -e " ${YELLOW}DEPLOY PARTIAL${NC} — $STEPS_OK passed, $STEPS_FAIL failed (of $TOTAL)" echo " Review errors above." fi echo "══════════════════════════════════════════════" echo "" [ $STEPS_FAIL -eq 0 ]