This commit is contained in:
+60
-1
@@ -21,6 +21,10 @@ Commands:
|
||||
|
||||
Restore options:
|
||||
--all
|
||||
--beta
|
||||
--beta-ops
|
||||
--beta-whitelist
|
||||
--beta-world
|
||||
--fabric
|
||||
--fabric-essentials
|
||||
--fabric-g4mespeed
|
||||
@@ -59,6 +63,10 @@ cmd_restore() {
|
||||
CLEANUP_VOLUMES=0
|
||||
|
||||
# Default flags
|
||||
## Beta server
|
||||
RESTORE_BETA_OPS=0
|
||||
RESTORE_BETA_WHITELIST=0
|
||||
RESTORE_BETA_WORLD=0
|
||||
## Fabric server
|
||||
RESTORE_FABRIC_ESSENTIALS=0
|
||||
RESTORE_FABRIC_G4MESPEED=0
|
||||
@@ -85,6 +93,9 @@ cmd_restore() {
|
||||
while [ $# -gt 0 ]; do
|
||||
case "$1" in
|
||||
--all)
|
||||
RESTORE_BETA_OPS=1
|
||||
RESTORE_BETA_WHITELIST=1
|
||||
RESTORE_BETA_WORLD=1
|
||||
RESTORE_FABRIC_ESSENTIALS=1
|
||||
RESTORE_FABRIC_G4MESPEED=1
|
||||
RESTORE_FABRIC_WORLD=1
|
||||
@@ -102,6 +113,24 @@ cmd_restore() {
|
||||
RESTORE_VELOCITY_GLOBAL_WHITELIST=1
|
||||
;;
|
||||
|
||||
--beta)
|
||||
RESTORE_BETA_OPS=1
|
||||
RESTORE_BETA_WHITELIST=1
|
||||
RESTORE_BETA_WORLD=1
|
||||
;;
|
||||
|
||||
--beta-ops)
|
||||
RESTORE_BETA_OPS=1
|
||||
;;
|
||||
|
||||
--beta-whitelist)
|
||||
RESTORE_BETA_WHITELIST=1
|
||||
;;
|
||||
|
||||
--beta-world)
|
||||
RESTORE_BETA_WORLD=1
|
||||
;;
|
||||
|
||||
--fabric)
|
||||
RESTORE_FABRIC_ESSENTIALS=1
|
||||
RESTORE_FABRIC_G4MESPEED=1
|
||||
@@ -235,7 +264,10 @@ cmd_restore() {
|
||||
BACKUP_ID=$(basename "$BACKUP_DIR")
|
||||
|
||||
# Validate options
|
||||
if [ "$RESTORE_FABRIC_ESSENTIALS" -eq 0 ] \
|
||||
if [ "$RESTORE_BETA_OPS" -eq 0 ] \
|
||||
&& [ "$RESTORE_BETA_WHITELIST" -eq 0 ] \
|
||||
&& [ "$RESTORE_BETA_WORLD" -eq 0 ] \
|
||||
&& [ "$RESTORE_FABRIC_ESSENTIALS" -eq 0 ] \
|
||||
&& [ "$RESTORE_FABRIC_G4MESPEED" -eq 0 ] \
|
||||
&& [ "$RESTORE_FABRIC_WORLD" -eq 0 ] \
|
||||
&& [ "$RESTORE_LUCKPERMS" -eq 0 ] \
|
||||
@@ -263,6 +295,7 @@ cmd_restore() {
|
||||
trap restore_cleanup_trap HUP INT QUIT ABRT TERM
|
||||
create_snapshot || restore_cleanup_failure
|
||||
|
||||
restore_beta || restore_cleanup_failure
|
||||
restore_fabric || restore_cleanup_failure
|
||||
restore_luckperms || restore_cleanup_failure
|
||||
restore_paper || restore_cleanup_failure
|
||||
@@ -280,6 +313,7 @@ create_snapshot() {
|
||||
# Map: source volume name -> cloned volume name
|
||||
# Source names must match the mount points inside init
|
||||
declare -Ag VOLUMES=(
|
||||
[beta_data]="beta_data_$BACKUP_ID"
|
||||
[fabric_data]="fabric_data_$BACKUP_ID"
|
||||
[luckperms_data]="luckperms_data_$BACKUP_ID"
|
||||
[paper_data]="paper_data_$BACKUP_ID"
|
||||
@@ -304,6 +338,7 @@ create_snapshot() {
|
||||
"${MOUNTS[@]}" \
|
||||
init sh -ec '
|
||||
for DIR in \
|
||||
beta_data \
|
||||
fabric_data \
|
||||
luckperms_data \
|
||||
paper_data \
|
||||
@@ -321,6 +356,29 @@ create_snapshot() {
|
||||
echo "Created snapshot successfully"
|
||||
}
|
||||
|
||||
restore_beta() {
|
||||
if [ "$RESTORE_BETA_OPS" -eq 1 ]; then
|
||||
echo "Restoring Beta server's op list..."
|
||||
docker compose run --rm init sh -c '
|
||||
cp -a --reflink=auto "$1"/beta_data/ops.txt /beta_data
|
||||
' -- "$BACKUP_DIR" || return 1
|
||||
fi
|
||||
|
||||
if [ "$RESTORE_BETA_WHITELIST" -eq 1 ]; then
|
||||
echo "Restoring Beta server's whitelist..."
|
||||
docker compose run --rm init sh -c '
|
||||
cp -a --reflink=auto "$1"/beta_data/white-list.txt /beta_data
|
||||
' -- "$BACKUP_DIR" || return 1
|
||||
fi
|
||||
|
||||
if [ "$RESTORE_BETA_WORLD" -eq 1 ]; then
|
||||
echo "Restoring Beta server's world..."
|
||||
docker compose run --rm init sh -c '
|
||||
cp -a --reflink=auto "$1"/beta_data/world /beta_data
|
||||
' -- "$BACKUP_DIR" || return 1
|
||||
fi
|
||||
}
|
||||
|
||||
restore_fabric() {
|
||||
if [ "$RESTORE_FABRIC_ESSENTIALS" -eq 1 ]; then
|
||||
echo "Restoring Fabric server's Essentials mod data..."
|
||||
@@ -484,6 +542,7 @@ restore_cleanup() {
|
||||
"${MOUNTS[@]}" \
|
||||
init sh -ec '
|
||||
for DIR in \
|
||||
beta_data \
|
||||
fabric_data \
|
||||
luckperms_data \
|
||||
paper_data \
|
||||
|
||||
Reference in New Issue
Block a user