Загрузка данных


#!/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 ""