#!/bin/bash
set -euo pipefail
WORK_ROOT="$HOME/VMBuildAgent"
UNITY="/Applications/Unity/Hub/Editor/6000.3.6f1/Unity.app/Contents/MacOS/Unity"
APP_ID="${1:-}"
if [ -z "$APP_ID" ]; then
echo "ERROR: app id required"
exit 1
fi
if [[ ! "$APP_ID" =~ ^[a-zA-Z0-9_-]+$ ]]; then
echo "ERROR: invalid app id"
exit 1
fi
JOB_DIR="$WORK_ROOT/working/$APP_ID"
PROJECT_DIR="$WORK_ROOT/projects/$APP_ID"
LOG_DIR="$WORK_ROOT/logs/$APP_ID"
UNITYPACKAGE_FILE="$JOB_DIR/$APP_ID.unitypackage"
CREATE_LOG="$LOG_DIR/create_project.log"
IMPORT_LOG="$LOG_DIR/import_package.log"
echo ""
echo "=================================="
echo " UNITY AGENT"
echo "=================================="
echo ""
echo "App ID: $APP_ID"
echo ""
if [ ! -x "$UNITY" ]; then
echo "ERROR: Unity not found"
echo "$UNITY"
exit 1
fi
if [ ! -s "$UNITYPACKAGE_FILE" ]; then
echo "ERROR: UnityPackage not found"
echo "$UNITYPACKAGE_FILE"
exit 1
fi
mkdir -p "$WORK_ROOT/projects"
mkdir -p "$LOG_DIR"
echo "[1/3] Creating clean Unity project..."
rm -rf "$PROJECT_DIR"
"$UNITY" \
-batchmode \
-nographics \
-quit \
-createProject "$PROJECT_DIR" \
-logFile "$CREATE_LOG"
if [ ! -d "$PROJECT_DIR/Assets" ]; then
echo ""
echo "ERROR: Unity project creation failed"
echo "Log:"
echo "$CREATE_LOG"
exit 1
fi
echo "OK"
echo ""
echo "[2/3] Importing UnityPackage..."
"$UNITY" \
-batchmode \
-nographics \
-quit \
-accept-apiupdate \
-projectPath "$PROJECT_DIR" \
-importPackage "$UNITYPACKAGE_FILE" \
-logFile "$IMPORT_LOG"
echo "OK"
echo ""
echo "[3/3] Checking imported project..."
if [ ! -d "$PROJECT_DIR/Assets" ]; then
echo "ERROR: Assets folder missing"
exit 1
fi
if [ ! -d "$PROJECT_DIR/ProjectSettings" ]; then
echo "ERROR: ProjectSettings folder missing"
exit 1
fi
echo "OK"
echo ""
echo "=================================="
echo " UNITY PROJECT READY"
echo "=================================="
echo ""
echo "ID:"
echo "$APP_ID"
echo ""
echo "Project:"
echo "$PROJECT_DIR"
echo ""
echo "UnityPackage:"
echo "$UNITYPACKAGE_FILE"
echo ""
echo "Create log:"
echo "$CREATE_LOG"
echo ""
echo "Import log:"
echo "$IMPORT_LOG"
echo ""