check new version
This commit is contained in:
@@ -1,18 +1,36 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
|
||||
OLD_VERSION="$1"
|
||||
NEW_VERSION="$2"
|
||||
STAGING_DIR="{{ update_staging_dir }}"
|
||||
SERVER_DIR="{{ minecraft_server_dir }}"
|
||||
BACKUP_DIR="{{ minecraft_backups_dir }}/version_backup"
|
||||
PREVIOUS_DIR="{{ spigot_previous_dir }}"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
|
||||
# Create backup directory
|
||||
mkdir -p "${BACKUP_DIR}"
|
||||
# Create previous directory if not exists
|
||||
mkdir -p "$PREVIOUS_DIR"
|
||||
|
||||
# Backup current version
|
||||
mv "${SERVER_DIR}" "${BACKUP_DIR}/server_${OLD_VERSION}_$(date +%Y%m%d_%H%M%S)"
|
||||
# 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' \
|
||||
.
|
||||
|
||||
# Switch to new version
|
||||
mv "${SERVER_DIR}_${NEW_VERSION}" "${SERVER_DIR}"
|
||||
# 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/"
|
||||
|
||||
echo "Version switched from ${OLD_VERSION} to ${NEW_VERSION}"
|
||||
exit 0
|
||||
# Set permissions
|
||||
chown -R {{ minecraft_user }}:{{ minecraft_group }} "$SERVER_DIR"
|
||||
|
||||
echo "Version switch completed!"
|
Reference in New Issue
Block a user