|
|
@ -9,26 +9,6 @@ commandname="WIPE" |
|
|
|
commandaction="Wiping" |
|
|
|
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" |
|
|
|
|
|
|
|
check.sh |
|
|
|
fn_print_header |
|
|
|
fn_script_log "Entering ${gamename} ${commandaction}" |
|
|
|
|
|
|
|
# Process to server wipe. |
|
|
|
fn_wipe_server_process(){ |
|
|
|
check_status.sh |
|
|
|
if [ "${status}" != "0" ]; then |
|
|
|
exitbypass=1 |
|
|
|
command_stop.sh |
|
|
|
fn_wipe_server_remove_files |
|
|
|
exitbypass=1 |
|
|
|
command_start.sh |
|
|
|
else |
|
|
|
fn_wipe_server_remove_files |
|
|
|
fi |
|
|
|
echo -e "server data wiped" |
|
|
|
fn_script_log "server data wiped" |
|
|
|
} |
|
|
|
|
|
|
|
# Provides an exit code upon error. |
|
|
|
fn_wipe_exit_code(){ |
|
|
|
((exitcode=$?)) |
|
|
@ -41,141 +21,139 @@ fn_wipe_exit_code(){ |
|
|
|
} |
|
|
|
|
|
|
|
# Removes files to wipe server. |
|
|
|
fn_wipe_server_remove_files(){ |
|
|
|
# Rust Wipe. |
|
|
|
if [ "${shortname}" == "rust" ]; then |
|
|
|
# Wipe pocedural map. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then |
|
|
|
currentaction="Removing map file(s): ${serveridentitydir}/proceduralmap.*.map" |
|
|
|
echo -en "Removing procedural map proceduralmap.*.map file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No procedural map file to remove" |
|
|
|
fn_script_log_info "No procedural map file to remove" |
|
|
|
fi |
|
|
|
# Wipe procedural map save. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then |
|
|
|
currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav" |
|
|
|
echo -en "Removing map saves proceduralmap.*.sav file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No procedural map save to remove" |
|
|
|
fn_script_log_info "No procedural map save to remove" |
|
|
|
fi |
|
|
|
# Wipe Barren map. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then |
|
|
|
currentaction="Removing map file(s): ${serveridentitydir}/barren*.map" |
|
|
|
echo -en "Removing barren map barren*.map file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "barren*.map" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No barren map file to remove" |
|
|
|
fn_script_log_info "No barren map file to remove" |
|
|
|
fi |
|
|
|
# Wipe barren map save. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then |
|
|
|
currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav" |
|
|
|
echo -en "Removing barren map saves barren*.sav file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No barren map save to remove" |
|
|
|
fn_script_log_info "No barren map save to remove." |
|
|
|
fi |
|
|
|
# Wipe user dir, might be a legacy thing, maybe to be removed. |
|
|
|
if [ -d "${serveridentitydir}/user" ]; then |
|
|
|
currentaction="Removing user directory: ${serveridentitydir}/user" |
|
|
|
echo -en "Removing user directory..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
rm -rf "${serveridentitydir:?}/user" |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# We do not print additional information if there is nothing to remove since this might be obsolete. |
|
|
|
fi |
|
|
|
# Wipe storage dir, might be a legacy thing, maybe to be removed. |
|
|
|
if [ -d "${serveridentitydir}/storage" ]; then |
|
|
|
currentaction="Removing storage directory: ${serveridentitydir}/storage" |
|
|
|
echo -en "Removing storage directory..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
rm -rf "${serveridentitydir:?}/storage" |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# We do not print additional information if there is nothing to remove since this might be obsolete. |
|
|
|
fi |
|
|
|
# Wipe sv.files. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then |
|
|
|
currentaction="Removing server misc files: ${serveridentitydir}/sv.files.*.db" |
|
|
|
echo -en "Removing server misc srv.files*.db file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "sv.files.*.db" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# No further information if not found because it should I could not get this file showing up. |
|
|
|
fi |
|
|
|
# Wipe player death files. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]; then |
|
|
|
currentaction="Removing player death files: ${serveridentitydir}/player.deaths.*.db" |
|
|
|
echo -en "Removing player deaths player.deaths.*.db file(s)..." |
|
|
|
fn_wipe_server_files(){ |
|
|
|
fn_print_start_nl "Wiping server" |
|
|
|
fn_script_log_info "Wiping server" |
|
|
|
# Wipe procedural map. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.map")" ]; then |
|
|
|
currentaction="removing map file(s): ${serveridentitydir}/proceduralmap.*.map" |
|
|
|
echo -en "Removing procedural map proceduralmap.*.map file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No procedural map file to remove" |
|
|
|
fn_script_log_info "No procedural map file to remove" |
|
|
|
fi |
|
|
|
# Wipe procedural map save. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "proceduralmap.*.sav")" ]; then |
|
|
|
currentaction="Removing procedural map save(s): ${serveridentitydir}/proceduralmap.*.sav" |
|
|
|
echo -en "Removing map saves proceduralmap.*.sav file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No procedural map save to remove" |
|
|
|
fn_script_log_info "No procedural map save to remove" |
|
|
|
fi |
|
|
|
# Wipe Barren map. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "barren*.map")" ]; then |
|
|
|
currentaction="Removing map file(s): ${serveridentitydir}/barren*.map" |
|
|
|
echo -en "Removing barren map barren*.map file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "barren*.map" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No barren map file to remove" |
|
|
|
fn_script_log_info "No barren map file to remove" |
|
|
|
fi |
|
|
|
# Wipe barren map save. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]; then |
|
|
|
currentaction="Removing barren map save(s): ${serveridentitydir}/barren*.sav" |
|
|
|
echo -en "Removing barren map saves barren*.sav file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No barren map save to remove" |
|
|
|
fn_script_log_info "No barren map save to remove." |
|
|
|
fi |
|
|
|
# Wipe user dir, might be a legacy thing, maybe to be removed. |
|
|
|
if [ -d "${serveridentitydir}/user" ]; then |
|
|
|
currentaction="Removing user directory: ${serveridentitydir}/user" |
|
|
|
echo -en "Removing user directory..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
rm -rf "${serveridentitydir:?}/user" |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# We do not print additional information if there is nothing to remove since this might be obsolete. |
|
|
|
fi |
|
|
|
# Wipe storage dir, might be a legacy thing, maybe to be removed. |
|
|
|
if [ -d "${serveridentitydir}/storage" ]; then |
|
|
|
currentaction="Removing storage directory: ${serveridentitydir}/storage" |
|
|
|
echo -en "Removing storage directory..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
rm -rf "${serveridentitydir:?}/storage" |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# We do not print additional information if there is nothing to remove since this might be obsolete. |
|
|
|
fi |
|
|
|
# Wipe sv.files. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then |
|
|
|
currentaction="Removing server misc files: ${serveridentitydir}/sv.files.*.db" |
|
|
|
echo -en "Removing server misc srv.files*.db file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "sv.files.*.db" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# No further information if not found because it should I could not get this file showing up. |
|
|
|
fi |
|
|
|
# Wipe player death files. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]; then |
|
|
|
currentaction="Removing player death files: ${serveridentitydir}/player.deaths.*.db" |
|
|
|
echo -en "Removing player deaths player.deaths.*.db file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "player.deaths.*.db" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No player death to remove" |
|
|
|
fn_script_log_info "No player death to remove" |
|
|
|
fi |
|
|
|
# Wipe blueprints only if wipeall command was used. |
|
|
|
if [ "${wipeall}" == "1" ]; then |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then |
|
|
|
currentaction="Removing blueprint file(s): ${serveridentitydir}/player.blueprints.*.db" |
|
|
|
echo -en "Removing blueprints player.blueprints.*.db file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "player.deaths.*.db" -delete |
|
|
|
find "${serveridentitydir:?}" -type f -name "player.blueprints.*.db" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No player death to remove" |
|
|
|
fn_script_log_info "No player death to remove" |
|
|
|
fn_print_information_nl "No blueprint file to remove" |
|
|
|
fn_script_log_info "No blueprint file to remove" |
|
|
|
fi |
|
|
|
# Wipe blueprints only if wipeall command was used. |
|
|
|
if [ "${wipeall}" == "1" ]; then |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then |
|
|
|
currentaction="Removing blueprint file(s): ${serveridentitydir}/player.blueprints.*.db" |
|
|
|
echo -en "Removing blueprints player.blueprints.*.db file(s)..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "player.blueprints.*.db" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
else |
|
|
|
fn_print_information_nl "No blueprint file to remove" |
|
|
|
fn_script_log_info "No blueprint file to remove" |
|
|
|
fi |
|
|
|
elif [ "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then |
|
|
|
fn_print_information_nl "Keeping blueprints" |
|
|
|
fn_script_log_info "Keeping blueprints." |
|
|
|
else |
|
|
|
fn_print_information_nl "No blueprints found" |
|
|
|
fn_script_log_info "No blueprints found" |
|
|
|
fn_sleep_time |
|
|
|
fi |
|
|
|
# Wipe some logs that might be there. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then |
|
|
|
currentaction="Removing log files: ${serveridentitydir}/Log.*.txt" |
|
|
|
echo -en "Removing Log files..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
elif [ "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then |
|
|
|
fn_print_information_nl "Keeping blueprints" |
|
|
|
fn_script_log_info "Keeping blueprints." |
|
|
|
else |
|
|
|
fn_print_information_nl "No blueprints found" |
|
|
|
fn_script_log_info "No blueprints found" |
|
|
|
fn_sleep_time |
|
|
|
# We do not print additional information if there are no logs to remove. |
|
|
|
fi |
|
|
|
# You can add an "elif" here to add another game or engine. |
|
|
|
fi |
|
|
|
# Wipe some logs that might be there. |
|
|
|
if [ "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then |
|
|
|
currentaction="Removing log files: ${serveridentitydir}/Log.*.txt" |
|
|
|
echo -en "Removing Log files..." |
|
|
|
fn_sleep_time |
|
|
|
fn_script_log "${currentaction}" |
|
|
|
find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete |
|
|
|
fn_wipe_exit_code |
|
|
|
fn_sleep_time |
|
|
|
# We do not print additional information if there are no logs to remove. |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
@ -194,18 +172,40 @@ fn_stop_warning(){ |
|
|
|
fn_print_warn_nl "${selfname} will be stopped during wipe" |
|
|
|
} |
|
|
|
|
|
|
|
# Check if there is something to wipe, prompt the user, and call appropriate functions. |
|
|
|
# Rust Wipe. |
|
|
|
if [ -d "${serveridentitydir}/storage" ]||[ -d "${serveridentitydir}/user" ]||[ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap*.sav")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then |
|
|
|
fn_print_warning_nl "Any user, storage, log and map data from ${serveridentitydir} will be erased" |
|
|
|
fn_wipe_warning |
|
|
|
fn_script_log_info "User selects to erase any user, storage, log and map data from ${serveridentitydir}" |
|
|
|
fn_sleep_time |
|
|
|
fn_wipe_server_process |
|
|
|
fn_wipe_warning(){ |
|
|
|
fn_print_warn "${selfname} wipe is about to start" |
|
|
|
fn_script_log_warn "${selfname} wipe is about to start" |
|
|
|
totalseconds=3 |
|
|
|
for seconds in {3..1}; do |
|
|
|
fn_print_warn "${selfname} wipe is about to start: ${totalseconds}" |
|
|
|
totalseconds=$((totalseconds - 1)) |
|
|
|
sleep 1 |
|
|
|
if [ "${seconds}" == "0" ]; then |
|
|
|
break |
|
|
|
fi |
|
|
|
done |
|
|
|
fn_print_warn "${selfname} wipe is about to start" |
|
|
|
} |
|
|
|
|
|
|
|
fn_print_dots "Wiping server" |
|
|
|
check.sh |
|
|
|
|
|
|
|
# Check if there is something to wipe. |
|
|
|
if [ -d "${serveridentitydir}/storage" ]||[ -d "${serveridentitydir}/user" ]||[ -n "$(find "${serveridentitydir}" -type f -name "proceduralmap*.sav")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "barren*.sav")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.deaths.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]||[ -n "$(find "${serveridentitydir}" -type f -name "sv.files.*.db")" ]; then |
|
|
|
fn_wipe_warning |
|
|
|
check_status.sh |
|
|
|
if [ "${status}" != "0" ]; then |
|
|
|
fn_stop_warning |
|
|
|
exitbypass=1 |
|
|
|
command_stop.sh |
|
|
|
fn_wipe_server_files |
|
|
|
exitbypass=1 |
|
|
|
command_start.sh |
|
|
|
else |
|
|
|
fn_print_information_nl "No data to wipe was found" |
|
|
|
fn_script_log_info "No data to wipe was found" |
|
|
|
core_exit.sh |
|
|
|
fn_wipe_server_files |
|
|
|
fi |
|
|
|
|
|
|
|
else |
|
|
|
fn_print_info_nl "No data to wipe was found" |
|
|
|
fn_script_log_info "No data to wipe was found" |
|
|
|
fi |
|
|
|
core_exit.sh |
|
|
|