**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`
This commit is contained in:
53
bash/init-local-server.sh
Executable file
53
bash/init-local-server.sh
Executable file
@ -0,0 +1,53 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user