Files
m2612/bash/init-local-server.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

54 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
#
# Развёртывание минимального локального тестового сервера:
# eula.txt, server.properties, start.sh + Fabric Server Launcher.
#
set -euo pipefail
SCRIPT_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &> /dev/null && pwd)
REPO_ROOT="${SCRIPT_DIR}/.."
TEMPLATE_DIR="${REPO_ROOT}/server-template"
TARGET_DIR="/home/dimti/Seafile/minecraft/installers/m2612"
LOCK_FILE="${REPO_ROOT}/pakku-lock.json"
FABRIC_INSTALLER_VERSION="${FABRIC_INSTALLER_VERSION:-1.1.1}"
cd "${REPO_ROOT}" || exit 1
if [[ ! -f "${LOCK_FILE}" ]]; then
echo "Ошибка: не найден ${LOCK_FILE}"
exit 1
fi
MC_VERSION=$(python3 -c "import json; print(json.load(open('${LOCK_FILE}'))['mc_versions'][0])")
LOADER_VERSION=$(python3 -c "import json; print(json.load(open('${LOCK_FILE}'))['loaders']['fabric'])")
FABRIC_JAR="fabric-server-mc.${MC_VERSION}-loader.${LOADER_VERSION}-launcher.${FABRIC_INSTALLER_VERSION}.jar"
FABRIC_URL="https://meta.fabricmc.net/v2/versions/loader/${MC_VERSION}/${LOADER_VERSION}/${FABRIC_INSTALLER_VERSION}/server/jar"
echo "MC=${MC_VERSION} loader=${LOADER_VERSION} installer=${FABRIC_INSTALLER_VERSION}"
echo "Целевая папка: ${TARGET_DIR}"
mkdir -p "${TARGET_DIR}"
cp -f "${TEMPLATE_DIR}/eula.txt" "${TARGET_DIR}/eula.txt"
if [[ ! -f "${TARGET_DIR}/server.properties" ]]; then
cp "${TEMPLATE_DIR}/server.properties" "${TARGET_DIR}/server.properties"
echo "Создан server.properties из шаблона"
else
echo "server.properties уже есть — не перезаписываю"
fi
sed "s/__FABRIC_SERVER_JAR__/${FABRIC_JAR}/" "${TEMPLATE_DIR}/start.sh" > "${TARGET_DIR}/start.sh"
chmod +x "${TARGET_DIR}/start.sh"
echo "Обновлён start.sh → ${FABRIC_JAR}"
if [[ -f "${TARGET_DIR}/${FABRIC_JAR}" ]]; then
echo "Fabric launcher уже скачан: ${FABRIC_JAR}"
else
echo "Скачиваю Fabric Server Launcher..."
curl -fL --progress-bar -o "${TARGET_DIR}/${FABRIC_JAR}" "${FABRIC_URL}"
echo "Скачан: ${TARGET_DIR}/${FABRIC_JAR}"
fi
echo "Готово. Запуск: ${TARGET_DIR}/start.sh"