@@ -12,219 +12,170 @@ fn_firstcommand_set
12
12
13
13
# Provides an exit code upon error.
14
14
fn_wipe_exit_code (){
15
- (( exitcode= $? ))
15
+ exitcode=$?
16
16
if [ " ${exitcode} " != 0 ]; then
17
- fn_script_log_fatal " ${currentaction} "
17
+ fn_print_fail_eol_nl
18
18
core_exit.sh
19
19
else
20
20
fn_print_ok_eol_nl
21
21
fi
22
22
}
23
23
24
24
# Removes files to wipe server.
25
- fn_wipe_server_files (){
26
- fn_print_start_nl " Wiping server"
27
- fn_script_log_info " Wiping server"
28
- # Wipe procedural map.
29
- if [ -n " $( find " ${serveridentitydir} " -type f -name " proceduralmap.*.map" ) " ]; then
30
- echo -en " removing procedural map proceduralmap.*.map file(s)..."
31
- fn_sleep_time
32
- fn_script_log_info " Removing procedural map file(s): ${serveridentitydir} /proceduralmap.*.map"
33
- find " ${serveridentitydir:? } " -type f -name " proceduralmap.*.map" -delete | tee -a " ${lgsmlog} "
34
- fn_wipe_exit_code
35
- fn_sleep_time
36
- else
37
- echo -e " no procedural map file to remove"
38
- fn_sleep_time
39
- fn_script_log_pass " No procedural map file to remove"
40
- fi
41
- # Wipe Barren map.
42
- if [ -n " $( find " ${serveridentitydir} " -type f -name " barren*.map" ) " ]; then
43
- echo -en " removing barren map barren*.map file(s)..."
44
- fn_sleep_time
45
- fn_script_log_info " Removing map file(s): ${serveridentitydir} /barren*.map"
46
- find " ${serveridentitydir:? } " -type f -name " barren*.map" -delete | tee -a " ${lgsmlog} "
47
- fn_wipe_exit_code
48
- fn_sleep_time
49
- else
50
- echo -e " no barren map file to remove"
51
- fn_sleep_time
52
- fn_script_log_pass " No barren map file to remove"
53
- fi
54
- # Wipe custom map.
55
- if [ -n " $( find " ${serveridentitydir} " -type f -name " *.map" ) " ]; then
56
- echo -en " removing custom map file(s)..."
57
- fn_sleep_time
58
- fn_script_log_info " Removing map file(s): ${serveridentitydir} /*.map"
59
- find " ${serveridentitydir:? } " -type f -name " *.map" -delete | tee -a " ${lgsmlog} "
60
- fn_wipe_exit_code
61
- fn_sleep_time
62
- else
63
- echo -e " no map file to remove"
64
- fn_sleep_time
65
- fn_script_log_pass " No map file to remove"
66
- fi
67
- # Wipe custom map save.
68
- if [ -n " $( find " ${serveridentitydir} " -type f -name " *.sav*" ) " ]; then
69
- echo -en " removing map save *.sav* file(s)..."
70
- fn_sleep_time
71
- fn_script_log_info " Removing map save(s): ${serveridentitydir} /*.sav*"
72
- find " ${serveridentitydir:? } " -type f -name " *.sav*" -delete | tee -a " ${lgsmlog} "
73
- fn_wipe_exit_code
74
- fn_sleep_time
75
- else
76
- echo -e " no map save to remove"
77
- fn_sleep_time
78
- fn_script_log_pass " No map save to remove."
79
- fi
80
- # Wipe user dir, might be a legacy thing, maybe to be removed.
81
- if [ -d " ${serveridentitydir} /user" ]; then
82
- echo -en " removing user directory..."
83
- fn_sleep_time
84
- fn_script_log_info " removing user directory: ${serveridentitydir} /user"
85
- rm -rf " ${serveridentitydir:? } /user"
86
- fn_wipe_exit_code
87
- fn_sleep_time
88
- # We do not print additional information if there is nothing to remove since this might be obsolete.
89
- fi
90
- # Wipe storage dir, might be a legacy thing, maybe to be removed.
91
- if [ -d " ${serveridentitydir} /storage" ]; then
92
- echo -en " removing storage directory..."
93
- fn_sleep_time
94
- fn_script_log_info " removing storage directory: ${serveridentitydir} /storage"
95
- rm -rf " ${serveridentitydir:? } /storage"
96
- fn_wipe_exit_code
97
- fn_sleep_time
98
- # We do not print additional information if there is nothing to remove since this might be obsolete.
99
- fi
100
- # Wipe sv.files.
101
- if [ -n " $( find " ${serveridentitydir} " -type f -name " sv.files.*.db" ) " ]; then
102
- echo -en " removing server misc srv.files*.db file(s)..."
103
- fn_sleep_time
104
- fn_script_log_info " Removing server misc files: ${serveridentitydir} /sv.files.*.db"
105
- find " ${serveridentitydir:? } " -type f -name " sv.files.*.db" -delete | tee -a " ${lgsmlog} "
106
- fn_wipe_exit_code
107
- fn_sleep_time
108
- # No further information if not found because it should I could not get this file showing up.
109
- fi
110
- # Wipe player death files.
111
- if [ -n " $( find " ${serveridentitydir} " -type f -name " player.deaths.*.db" ) " ]; then
112
- echo -en " removing player deaths player.deaths.*.db file(s)..."
113
- fn_sleep_time
114
- fn_script_log_info " Removing player death files: ${serveridentitydir} /player.deaths.*.db"
115
- find " ${serveridentitydir:? } " -type f -name " player.deaths.*.db" -delete | tee -a " ${lgsmlog} "
116
- fn_wipe_exit_code
117
- fn_sleep_time
118
- else
119
- echo -e " no player death to remove"
120
- fn_sleep_time
121
- fn_script_log_pass " No player death to remove"
122
- fi
123
- # Wipe player states files
124
- if [ -n " $( find " ${serveridentitydir} " -type f -name " player.states.*.db" ) " ]; then
125
- echo -en " removing player states player.states.*.db file(s)..."
126
- fn_sleep_time
127
- fn_script_log_info " Removing player states: ${serveridentitydir} /player.states.*.db"
128
- find " ${serveridentitydir:? } " -type f -name " player.states.*.db" -delete | tee -a " ${lgsmlog} "
129
- fn_wipe_exit_code
130
- fn_sleep_time
131
- else
132
- echo -e " no player states to remove"
133
- fn_sleep_time
134
- fn_script_log_pass " No player states to remove"
135
- fi
136
- # Wipe blueprints only if full-wipe command was used.
137
- if [ " ${fullwipe} " == " 1" ]; then
138
- if [ -n " $( find " ${serveridentitydir} " -type f -name " player.blueprints.*.db" ) " ]; then
139
- echo -en " removing blueprints player.blueprints.*.db file(s)..."
25
+ fn_wipe_files (){
26
+ fn_print_start_nl " ${wipetype} "
27
+ fn_script_log_info " ${wipetype} "
28
+
29
+ # Remove Map files
30
+ if [ -n " ${serverwipe} " ]|| [ -n " ${mapwipe} " ]; then
31
+ if [ -n " $( find " ${serveridentitydir} " -type f -name " *.map" ) " ]; then
32
+ echo -en " removing .map file(s)..."
33
+ fn_script_log_info " removing *.map file(s)"
140
34
fn_sleep_time
141
- fn_script_log_info " Removing blueprint file(s): ${serveridentitydir} /player.blueprints.*.db "
142
- find " ${serveridentitydir:? } " -type f -name " player.blueprints.*.db " -delete | tee -a " ${lgsmlog} "
35
+ find " ${serveridentitydir:? } " -type f -name " *.map " -printf " %f\n " >> " ${lgsmlog} "
36
+ find " ${serveridentitydir:? } " -type f -name " *.map " -delete | tee -a " ${lgsmlog} "
143
37
fn_wipe_exit_code
38
+ else
39
+ echo -e " no .map file(s) to remove"
40
+ fn_sleep_time
41
+ fn_script_log_pass " no .map file(s) to remove"
42
+ fi
43
+ fi
44
+ # Remove Save files.
45
+ if [ -n " ${serverwipe} " ]|| [ -n " ${mapwipe} " ]; then
46
+ if [ -n " $( find " ${serveridentitydir} " -type f -name " *.sav*" ) " ]; then
47
+ echo -en " removing .sav file(s)..."
48
+ fn_script_log_info " removing .sav file(s)"
144
49
fn_sleep_time
50
+ find " ${serveridentitydir:? } " -type f -name " *.sav*" -printf " %f\n" >> " ${lgsmlog} "
51
+ find " ${serveridentitydir:? } " -type f -name " *.sav*" -delete
52
+ fn_wipe_exit_code
145
53
else
146
- echo -e " no blueprint file to remove"
54
+ echo -e " no .sav file(s) to remove"
55
+ fn_script_log_pass " no .sav file(s) to remove"
147
56
fn_sleep_time
148
- fn_script_log_pass " No blueprint file to remove"
149
57
fi
150
- elif [ -n " $( find " ${serveridentitydir} " -type f -name " player.blueprints.*.db" ) " ]; then
151
- echo -e " keeping blueprints"
152
- fn_sleep_time
153
- fn_script_log_info " Keeping blueprints"
154
- else
155
- echo -e " no blueprints found"
156
- fn_sleep_time
157
- fn_script_log_pass " No blueprints found"
158
58
fi
159
- # Wipe some logs that might be there.
160
- if [ -n " $( find " ${serveridentitydir} " -type f -name " Log.*.txt" ) " ]; then
161
- echo -en " removing log files..."
162
- fn_sleep_time
163
- fn_script_log_info " Removing log files: ${serveridentitydir} /Log.*.txt"
164
- find " ${serveridentitydir:? } " -type f -name " Log.*.txt" -delete
165
- fn_wipe_exit_code
166
- fn_sleep_time
167
- # We do not print additional information if there are no logs to remove.
59
+ # Remove db files for full wipe.
60
+ # Excluding player.tokens.db for Rust+.
61
+ if [ -n " ${serverwipe} " ]; then
62
+ if [ -n " $( find " ${serveridentitydir} " -type f ! -name ' player.tokens.db' -name " *.db" ) " ]; then
63
+ echo -en " removing .db file(s)..."
64
+ fn_script_log_info " removing .db file(s)"
65
+ fn_sleep_time
66
+ find " ${serveridentitydir:? } " -type f ! -name ' player.tokens.db' -name " *.db" -printf " %f\n" >> " ${lgsmlog} "
67
+ find " ${serveridentitydir:? } " -type f ! -name ' player.tokens.db' -name " *.db" -delete
68
+ fn_wipe_exit_code
69
+ else
70
+ echo -e " no .db file(s) to remove"
71
+ fn_sleep_time
72
+ fn_script_log_pass " no .db file(s) to remove"
73
+ fi
168
74
fi
169
75
}
170
76
171
- fn_stop_warning (){
172
- fn_print_warn " this game server will be stopped during wipe "
173
- fn_script_log_warn " this game server will be stopped during wipe "
77
+ fn_map_wipe_warning (){
78
+ fn_print_warn " Map wipe will reset the map data and keep blueprint data "
79
+ fn_script_log_warn " Map wipe will reset the map data and keep blueprint data "
174
80
totalseconds=3
175
81
for seconds in {3..1}; do
176
- fn_print_warn " this game server will be stopped during wipe : ${totalseconds} "
82
+ fn_print_warn " Map wipe will reset the map data and keep blueprint data : ${totalseconds} "
177
83
totalseconds=$(( totalseconds - 1 ))
178
84
sleep 1
179
85
if [ " ${seconds} " == " 0" ]; then
180
86
break
181
87
fi
182
88
done
183
- fn_print_warn_nl " this game server will be stopped during wipe "
89
+ fn_print_warn_nl " Map wipe will reset the map data and keep blueprint data "
184
90
}
185
91
186
- fn_wipe_warning (){
187
- fn_print_warn " wipe is about to start "
188
- fn_script_log_warn " wipe is about to start "
92
+ fn_full_wipe_warning (){
93
+ fn_print_warn " Server wipe will reset the map data and remove blueprint data "
94
+ fn_script_log_warn " Server wipe will reset the map data and remove blueprint data "
189
95
totalseconds=3
190
96
for seconds in {3..1}; do
191
- fn_print_warn " wipe is about to start : ${totalseconds} "
97
+ fn_print_warn " Server wipe will reset the map data and remove blueprint data : ${totalseconds} "
192
98
totalseconds=$(( totalseconds - 1 ))
193
99
sleep 1
194
100
if [ " ${seconds} " == " 0" ]; then
195
101
break
196
102
fi
197
103
done
198
- fn_print_warn " wipe is about to start "
104
+ fn_print_warn_nl " Server wipe will reset the map data and remove blueprint data "
199
105
}
200
106
201
- # Will change the seed everytime the wipe command is run if the seed in config is not set .
107
+ # Will change the seed if the seed is not defined by the user .
202
108
fn_wipe_random_seed (){
203
- shuf -i 1-2147483647 -n 1 > " ${datadir} /${selfname} -seed.txt"
109
+ if [ -f " ${datadir} /${selfname} -seed.txt" ]&& [ -n " ${randomseed} " ]; then
110
+ shuf -i 1-2147483647 -n 1 > " ${datadir} /${selfname} -seed.txt"
111
+ seed=$( cat " ${datadir} /${selfname} -seed.txt" )
112
+ randomseed=1
113
+ echo -en " generating new random seed (${cyan}${seed}${default} )..."
114
+ fn_script_log_pass " generating new random seed (${cyan}${seed}${default} )"
115
+ fn_sleep_time
116
+ fn_print_ok_eol_nl
117
+ fi
118
+ }
119
+
120
+ # A summary of what wipe is going to do.
121
+ fn_wipe_details (){
122
+ fn_print_information_nl " Wipe does not remove Rust+ data."
123
+ echo -en " * Wipe map data: "
124
+ if [ -n " ${serverwipe} " ]|| [ -n " ${mapwipe} " ]; then
125
+ fn_print_yes_eol_nl
126
+ else
127
+ fn_print_no_eol_nl
128
+ fi
129
+
130
+ echo -en " * Wipe blueprint data: "
131
+ if [ -n " ${serverwipe} " ]; then
132
+ fn_print_yes_eol_nl
133
+ else
134
+ fn_print_no_eol_nl
135
+ fi
136
+
137
+ echo -en " * Change Procedural Map seed: "
138
+ if [ -n " ${randomseed} " ]; then
139
+ fn_print_yes_eol_nl
140
+ else
141
+ fn_print_no_eol_nl
142
+ fi
204
143
}
205
144
206
145
fn_print_dots " "
207
146
check.sh
147
+ fix_rust.sh
208
148
209
149
# Check if there is something to wipe.
210
- if [ -d " ${serveridentitydir} /storage" ]|| [ -d " ${serveridentitydir} /user" ]|| [ -n " $( find " ${serveridentitydir} " -type f -name " *.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
211
- fn_wipe_warning
150
+ if [ -n " $( find " ${serveridentitydir} " -type f -name " *.map" ) " ]|| [ -n " $( find " ${serveridentitydir} " -type f -name " *.sav*" ) " ]&& [ -n " $( find " ${serveridentitydir} " -type f ! -name ' player.tokens.db' -name " *.db" ) " ]; then
151
+ if [ -n " ${serverwipe} " ]; then
152
+ wipetype=" Full wipe"
153
+ fn_full_wipe_warning
154
+ fn_wipe_details
155
+ elif [ -n " ${mapwipe} " ]; then
156
+ wipetype=" Map wipe"
157
+ fn_map_wipe_warning
158
+ fn_wipe_details
159
+ fi
212
160
check_status.sh
213
161
if [ " ${status} " != " 0" ]; then
214
- fn_stop_warning
162
+ fn_print_restart_warning
215
163
exitbypass=1
216
164
command_stop.sh
217
165
fn_firstcommand_reset
218
- fn_wipe_server_files
166
+ fn_wipe_files
167
+ fn_wipe_random_seed
168
+ fn_print_complete_nl " ${wipetype} "
169
+ fn_script_log_pass " ${wipetype} "
219
170
exitbypass=1
220
171
command_start.sh
221
172
fn_firstcommand_reset
222
173
else
223
- fn_wipe_server_files
174
+ fn_wipe_files
175
+ fn_wipe_random_seed
176
+ fn_print_complete_nl " ${wipetype} "
177
+ fn_script_log_pass " ${wipetype} "
224
178
fi
225
- fn_print_complete_nl " Wiping ${selfname} "
226
- fn_script_log_pass " Wiping ${selfname} "
227
- fn_wipe_random_seed
228
179
else
229
180
fn_print_ok_nl " Wipe not required"
230
181
fn_script_log_pass " Wipe not required"
0 commit comments