Przeglądaj źródła

Full refactor to wipe and now fits new Rust files

Fixes #1830

I will test this and fix if needed
UltimateByte 7 lat temu
rodzic
commit
2a8982db5a
1 zmienionych plików z 71 dodań i 39 usunięć
  1. 71 39
      lgsm/functions/command_wipe.sh

+ 71 - 39
lgsm/functions/command_wipe.sh

@@ -43,63 +43,64 @@ fn_wipe_exit_code(){
 # Removes files to wipe server
 fn_wipe_server_remove_files(){
 	# Rust Wipe
-#WipeProceduralSave
 	if [ "${gamename}" == "Rust" ]; then
-		if [ -n "$(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)..."
+		# Wipe pocedural map
+		if [ -n "$(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)..."
 			sleep 0.5
 			fn_script_log "${currentaction}"
-			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
+			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
 			fn_wipe_exit_code
 			sleep 0.5
 		else
-			fn_print_information_nl "No procedural map save to remove"
-			fn_script_log_info "No procedural map save to remove."
+			fn_print_information_nl "No procedural map file to remove"
+			fn_script_log_info "No procedural map file to remove."
 			sleep 0.5
 		fi
-#WipeBarrenSave
-			if [ -n "$(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)..."
+		#Wipe procedural map save
+		if [ -n "$(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)..."
 			sleep 0.5
 			fn_script_log "${currentaction}"
-			find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
+			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.sav" -delete
 			fn_wipe_exit_code
 			sleep 0.5
 		else
-			fn_print_information_nl "No barren map save to remove"
-			fn_script_log_info "No barren map save to remove."
+			fn_print_information_nl "No procedural map save to remove"
+			fn_script_log_info "No procedural map save to remove."
 			sleep 0.5
 		fi
-#WipeProceduralMap
-		if [ -n "$(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)..."
+		# Wipe Barren map
+		if [ -n "$(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)..."
 			sleep 0.5
 			fn_script_log "${currentaction}"
-			find "${serveridentitydir:?}" -type f -name "proceduralmap.*.map" -delete
+			find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
 			fn_wipe_exit_code
 			sleep 0.5
 		else
-			fn_print_information_nl "No procedural map file to remove"
-			fn_script_log_info "No procedural map file to remove."
+			fn_print_information_nl "No barren map file to remove"
+			fn_script_log_info "No barren map file to remove."
 			sleep 0.5
 		fi
-#WipeBarrenMap
-				if [ -n "$(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)..."
+		# Wipe barren map save
+		if [ -n "$(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)..."
 			sleep 0.5
 			fn_script_log "${currentaction}"
-			find "${serveridentitydir:?}" -type f -name "barren*.map" -delete
+			find "${serveridentitydir:?}" -type f -name "barren*.sav" -delete
 			fn_wipe_exit_code
 			sleep 0.5
 		else
-			fn_print_information_nl "No barren map file to remove"
-			fn_script_log_info "No barren map file to remove."
+			fn_print_information_nl "No barren map save to remove"
+			fn_script_log_info "No barren map save to remove."
 			sleep 0.5
 		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..."
@@ -108,11 +109,9 @@ fn_wipe_server_remove_files(){
 			rm -rf "${serveridentitydir:?}/user"
 			fn_wipe_exit_code
 			sleep 0.5
-		else
-			fn_print_information_nl "No user directory to remove"
-			fn_script_log_info "No user directory to remove."
-			sleep 0.5
+		# 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..."
@@ -121,11 +120,47 @@ fn_wipe_server_remove_files(){
 			rm -rf "${serveridentitydir:?}/storage"
 			fn_wipe_exit_code
 			sleep 0.5
+		# We do not print additional information if there is nothing to remove since this might be obsolete
+		fi
+		# Wipe player death files
+		if [ -n "$(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)..."
+			sleep 0.5
+			fn_script_log "${currentaction}"
+			find "${serveridentitydir:?}" -type f -name "player.deaths.*.db" -delete
+			fn_wipe_exit_code
+			sleep 0.5
 		else
-			fn_print_information_nl "No storage directory to remove"
-			fn_script_log_info "No storage directory to remove."
+			fn_print_information_nl "No player death to remove"
+			fn_script_log_info "No player death to remove."
 			sleep 0.5
 		fi
+		# Wipe blueprints only if wipeall command was used
+		if [ "${wipeall}" == "1" ]; then
+			if [ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]; then
+				currentaction="Removing blueprint file(s): ${serveridentitydir}/player.blueprints.*.db"
+				echo -en "Removing procedural blueprints player.blueprints.*.db file(s)..."
+				sleep 0.5
+				fn_script_log "${currentaction}"
+				find "${serveridentitydir:?}" -type f -name "player.blueprints.*.db" -delete
+				fn_wipe_exit_code
+				sleep 0.5
+			else
+				fn_print_information_nl "No blueprint file to remove"
+				fn_script_log_info "No blueprint file to remove."
+				sleep 0.5
+			fi
+		elif [ -n "$(find "${serveridentitydir}" -type f -name "player.blueprints.*.db")" ]
+				fn_print_information_nl "Keeping blueprints"
+				fn_script_log_info "Keeping blueprints."
+				sleep 0.5
+		else
+				fn_print_information_nl "No blueprints found"
+				fn_script_log_info "No blueprints found."
+				sleep 0.5				
+		fi
+		# Wipe some logs that might be there
 		if [ -n "$(find "${serveridentitydir}" -type f -name "Log.*.txt")" ]; then
 			currentaction="Removing log files: ${serveridentitydir}/Log.*.txt"
 			echo -en "Removing Log files..."
@@ -134,10 +169,7 @@ fn_wipe_server_remove_files(){
 			find "${serveridentitydir:?}" -type f -name "Log.*.txt" -delete
 			fn_wipe_exit_code
 			sleep 0.5
-		else
-			fn_print_information_nl "No log files to remove"
-			fn_script_log_info "No log files to remove."
-			sleep 0.5
+		# 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
@@ -146,7 +178,7 @@ fn_wipe_server_remove_files(){
 # Check if there is something to wipe, prompt the user, and call appropriate functions
 # Rust Wipe
 if [ "${gamename}" == "Rust" ]; then
-	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")" ]; then
+	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")" ]; then
 		fn_print_warning_nl "Any user, storage, log and map data from ${serveridentitydir} will be erased."
 		if ! fn_prompt_yn "Continue?" Y; then
 				echo Exiting; core_exit.sh