From 3291858309026d228bc7f96921425e7181c4aa35 Mon Sep 17 00:00:00 2001 From: Ben Peddell Date: Thu, 13 Oct 2022 07:16:07 +1000 Subject: [PATCH] Fix restore path check for Cluster / SaveGames --- tools/arkmanager | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tools/arkmanager b/tools/arkmanager index 613b7a7..046bf9f 100755 --- a/tools/arkmanager +++ b/tools/arkmanager @@ -3252,7 +3252,7 @@ doBackup(){ else echo -e "${NORMAL}\e[68G[ ${RED}FAILED${NORMAL} ]" fi - echo -e "${NORMAL} Created Backup: ${GREEN} ${instance}.${datestamp}.tar.bz2${NORMAL}" + echo -e "${NORMAL} Created Backup: ${GREEN} ${instance}.${datestamp}.tar.bz2${NORMAL} in ${arkbackupdir}/${daystamp}" if [ -n "$arkMaxBackupSizeGB" ] && (( arkMaxBackupSizeGB >= 1 )); then (( arkMaxBackupSizeMB = arkMaxBackupSizeGB * 1024 )) @@ -3284,6 +3284,7 @@ doRestore(){ local savedir="$(getSavedArksDirectory "${saverootdir}")" local clusterdir="$(getArkServerSetting "ClusterDirOverride" "${saverootdir}/clusters/$(getArkServerSetting "clusterid")")" local restorePath= + local stripComponents=1 if [[ $# -ne 0 ]] ; then backupFile=$1 else @@ -3300,12 +3301,15 @@ doRestore(){ echo "Restoring from ${backupFile}" for file in $(tar -tjf "${backupFile}") ; do restorePath= - case "${file}" in + stripComponents=1 + case "${file#*/}" in SaveGames/*) # mod persistent info restorePath="${saverootdir}" + stripComponents=2 ;; Cluster/*) # cluster files restorePath="${clusterdir}" + stripComponents=2 ;; *.ini) # ini are the config files restorePath="${savedcfgdir}" @@ -3315,8 +3319,8 @@ doRestore(){ ;; esac if [ -n "${restorePath}" ]; then - echo "Restoring ${file} to ${restorePath}" - tar -xjvf "${backupFile}" -C "${restorePath}" --strip-components=1 "${file}" + echo "Restoring ${file#*/} to ${restorePath}" + tar -xjvf "${backupFile}" -C "${restorePath}" --strip-components=${stripComponents} "${file}" # shellcheck disable=SC2181 if [ $? == 0 ] ; then echo -e "${NORMAL}\e[68G[ ${GREEN}OK${NORMAL} ]"