Files
m2612/bash/export-serverpack.sh
Alexander Demidov fec88fe91b **feat(server): add local server initialization and datapack sync**
- Update **ReadMe.md** with:
  - Spark console command syntax correction
  - New **Adventure Platform Mod** and **Better Fabric Console** entries
  - Resolved TODO items: server template setup and datapack sync
- Add **bash/init-local-server.sh** to automate server template deployment
- Enhance **bash/export-serverpack.sh** with datapack synchronization via `rsync`
2026-07-21 15:48:03 +03:00

43 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
pakku() { pakku-mc "$@"; }
# Определяем директории
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
REPO_ROOT="${SCRIPT_DIR}/.."
SOURCE_ZIP="${REPO_ROOT}/build/serverpack/*.zip"
TARGET_DIR="/home/dimti/Seafile/minecraft/installers/m2612"
cd "${REPO_ROOT}" || exit 1
# Side CLIENT-модов, нужных на сервере: pakku cfg prj -s BOTH lambdynamiclights xaeros-world-map
# (один раз; пишет override в pakku.json, дальше export подхватывает сам)
pakku export
# Проверяем, существует ли архив
if ls ${SOURCE_ZIP} 1> /dev/null 2>&1; then
echo "Нашел архив серверной сборки: ${SOURCE_ZIP}"
else
echo "Ошибка: Архив серверной сборки не найден в ${SOURCE_ZIP}"
exit 1
fi
# Очищаем целевые папки mods и config
echo "Очистка папок mods и config в ${TARGET_DIR}..."
rm -rf "${TARGET_DIR}/mods"
rm -rf "${TARGET_DIR}/config"
# Распаковываем архив в целевую директорию
echo "Распаковка архива в ${TARGET_DIR}..."
unzip -o ${SOURCE_ZIP} -d "${TARGET_DIR}"
# Синхронизируем датапаки в мир локального сервера
DATAPACKS_SRC="${REPO_ROOT}/datapacks/"
DATAPACKS_DST="${TARGET_DIR}/world/datapacks/"
echo "Синхронизация датапаков: ${DATAPACKS_SRC}${DATAPACKS_DST}"
mkdir -p "${DATAPACKS_DST}"
rsync -a "${DATAPACKS_SRC}" "${DATAPACKS_DST}"
echo "Синхронизация завершена успешно."