Files
Ansible-Minecraft-Server/roles/05-update/templates/version-switch.sh.j2
hcornet 9ea9ac7254
Some checks failed
Ansible Minecraft Server CI/CD / lint (push) Failing after 21s
Ansible Minecraft Server CI/CD / test (push) Has been skipped
Ansible Minecraft Server CI/CD / deploy (push) Has been skipped
check new version
2025-08-27 07:59:19 +02:00

36 lines
937 B
Django/Jinja

#!/bin/bash
# {{ ansible_managed }}
STAGING_DIR="{{ update_staging_dir }}"
SERVER_DIR="{{ minecraft_server_dir }}"
PREVIOUS_DIR="{{ spigot_previous_dir }}"
DATE=$(date +%Y%m%d_%H%M%S)
# Create previous directory if not exists
mkdir -p "$PREVIOUS_DIR"
# Backup current server
echo "Backing up current server..."
tar -czf "$PREVIOUS_DIR/server_before_update_$DATE.tar.gz" \
-C "$SERVER_DIR" \
--exclude='world*' \
--exclude='logs' \
--exclude='crash-reports' \
.
# Sync new version to server directory
echo "Switching to new version..."
rsync -av --delete \
--exclude='world*' \
--exclude='logs' \
--exclude='crash-reports' \
--exclude='plugins/*.yml' \
--exclude='ops.json' \
--exclude='whitelist.json' \
--exclude='banned-*.json' \
"$STAGING_DIR/" "$SERVER_DIR/"
# Set permissions
chown -R {{ minecraft_user }}:{{ minecraft_group }} "$SERVER_DIR"
echo "Version switch completed!"