#!/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!"