55 lines
1.6 KiB
Django/Jinja
55 lines
1.6 KiB
Django/Jinja
#!/bin/bash
|
|
# Script de changement de version Minecraft
|
|
|
|
set -e
|
|
|
|
if [ $# -ne 1 ]; then
|
|
echo "Usage: $0 <version>"
|
|
exit 1
|
|
fi
|
|
|
|
NEW_VERSION=$1
|
|
MINECRAFT_DIR="{{ minecraft_server_dir }}"
|
|
TEMP_BUILD_DIR="{{ temp_build_dir }}"
|
|
BACKUP_DIR="${MINECRAFT_DIR}/backup-$(date +%Y%m%d_%H%M%S)"
|
|
|
|
echo "Changement vers la version ${NEW_VERSION}"
|
|
|
|
# Vérification que le nouveau JAR existe
|
|
if [ ! -f "${TEMP_BUILD_DIR}/spigot-${NEW_VERSION}.jar" ]; then
|
|
echo "Erreur: Fichier spigot-${NEW_VERSION}.jar introuvable"
|
|
exit 1
|
|
fi
|
|
|
|
# Arrêt du serveur
|
|
echo "Arrêt du serveur Minecraft..."
|
|
systemctl stop minecraft || true
|
|
sleep 10
|
|
|
|
# Sauvegarde de l'ancienne version
|
|
echo "Sauvegarde de l'ancienne version..."
|
|
mkdir -p "${BACKUP_DIR}"
|
|
cp "${MINECRAFT_DIR}/spigot.jar" "${BACKUP_DIR}/spigot-old.jar" 2>/dev/null || true
|
|
|
|
# Copie de la nouvelle version
|
|
echo "Installation de la nouvelle version..."
|
|
cp "${TEMP_BUILD_DIR}/spigot-${NEW_VERSION}.jar" "${MINECRAFT_DIR}/spigot.jar"
|
|
chown {{ minecraft_user }}:{{ minecraft_group }} "${MINECRAFT_DIR}/spigot.jar"
|
|
|
|
# Test de démarrage
|
|
echo "Test de la nouvelle version..."
|
|
systemctl start minecraft
|
|
|
|
# Vérification que le serveur démarre correctement
|
|
sleep 30
|
|
if systemctl is-active --quiet minecraft; then
|
|
echo "Mise à jour réussie vers la version ${NEW_VERSION}"
|
|
echo "Ancienne version sauvegardée dans: ${BACKUP_DIR}"
|
|
else
|
|
echo "Erreur: La nouvelle version ne démarre pas correctement"
|
|
echo "Restauration de l'ancienne version..."
|
|
systemctl stop minecraft || true
|
|
cp "${BACKUP_DIR}/spigot-old.jar" "${MINECRAFT_DIR}/spigot.jar" 2>/dev/null || true
|
|
systemctl start minecraft
|
|
exit 1
|
|
fi |