Files
lineage2-h5-server/scripts/collect-dist.sh
T

74 lines
2.5 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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"