74 lines
2.5 KiB
Bash
74 lines
2.5 KiB
Bash
#!/usr/bin/env bash
|
||
# Приводит результат Ant-сборки Mobius к единой структуре:
|
||
# /out/login/ — всё для login-сервера (LoginServer.jar + config + libs)
|
||
# /out/game/ — всё для game-сервера (GameServer.jar + config + libs)
|
||
#
|
||
# Ant-таргеты "adding-core"/"adding-datapack" в build.xml собирают ВСЁ
|
||
# в один общий zip (build/<SUBDIR>.zip), а таргет cleanup удаляет
|
||
# промежуточный dist/. Поэтому источник истины — этот zip, а не
|
||
# исходная папка dist/ в репозитории (там jar-ов нет).
|
||
set -euo pipefail
|
||
|
||
BUILD_OUT="/build/build"
|
||
|
||
mkdir -p /out/login /out/game
|
||
|
||
ZIP_PATH=$(find "$BUILD_OUT" -maxdepth 1 -iname "*.zip" | head -n1)
|
||
|
||
if [ -z "$ZIP_PATH" ]; then
|
||
echo "!! Не найден собранный .zip в $BUILD_OUT"
|
||
echo "!! Содержимое $BUILD_OUT:"
|
||
find "$BUILD_OUT" -maxdepth 2 2>/dev/null || echo "(папка не существует)"
|
||
exit 1
|
||
fi
|
||
|
||
echo ">> найден собранный архив: $ZIP_PATH"
|
||
|
||
mkdir -p /tmp/extracted
|
||
cd /tmp/extracted
|
||
unzip -q "$ZIP_PATH"
|
||
|
||
echo ">> содержимое распакованного архива:"
|
||
find /tmp/extracted -maxdepth 3
|
||
|
||
EXTRACTED_ROOT="/tmp/extracted"
|
||
if [ -d "$EXTRACTED_ROOT/dist" ]; then
|
||
EXTRACTED_ROOT="$EXTRACTED_ROOT/dist"
|
||
fi
|
||
|
||
echo ">> используем корень: $EXTRACTED_ROOT"
|
||
|
||
if [ ! -d "$EXTRACTED_ROOT/login" ] || [ ! -d "$EXTRACTED_ROOT/game" ]; then
|
||
echo "!! Не нашёл login/ или game/ внутри архива. Полное содержимое:"
|
||
find /tmp/extracted
|
||
exit 1
|
||
fi
|
||
|
||
rsync -a "$EXTRACTED_ROOT/login"/ /out/login/
|
||
rsync -a "$EXTRACTED_ROOT/game"/ /out/game/
|
||
|
||
if [ -d "$EXTRACTED_ROOT/libs" ]; then
|
||
echo ">> копирую общие libs/ в оба out"
|
||
mkdir -p /out/login/libs /out/game/libs
|
||
rsync -a "$EXTRACTED_ROOT/libs"/ /out/login/libs/
|
||
rsync -a "$EXTRACTED_ROOT/libs"/ /out/game/libs/
|
||
fi
|
||
|
||
find /out -iname "*-sources.jar" -delete
|
||
|
||
# SQL-схемы для установки БД (login/accounts + game/characters и т.д.)
|
||
if [ -d "$EXTRACTED_ROOT/db_installer/sql" ]; then
|
||
echo ">> копирую SQL-схемы из db_installer/sql"
|
||
mkdir -p /out/sql
|
||
rsync -a "$EXTRACTED_ROOT/db_installer/sql"/ /out/sql/
|
||
fi
|
||
|
||
echo ">> /out/login contents:"
|
||
find /out/login -maxdepth 2
|
||
|
||
echo ">> /out/game contents:"
|
||
find /out/game -maxdepth 2
|
||
|
||
echo ">> jar files in /out:"
|
||
find /out -iname "*.jar"
|