- 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`
54 lines
2.1 KiB
Bash
Executable File
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"
|