36 lines
937 B
Django/Jinja
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!" |