Added support for xmllint on start to avoid issues with silent errors

This commit is contained in:
Price Hiller 2021-12-26 02:05:44 -06:00
parent bce8f095fd
commit eb393896ac

View File

@ -1,6 +1,5 @@
#!/bin/bash
echo_rgb() {
# Echo a colored string to the terminal based on rgb values
#
@ -221,7 +220,6 @@ start_server() {
backup_configs "${server_directory}"
local server_port
server_port="$((START_PORT_RANGE + server_id))"
@ -258,6 +256,18 @@ start_server() {
mv "temp-serverconfig.xml" "${server_config}"
# xmllint, helps avoiding the random server launch failures for apparently no reason
if which xmllint >/dev/null 2>&1; then
for xml_file in "${server_directory}"/*.xml; do
log "info" "Linting $(important "${xml_file}")..."
if ! xmllint "${xml_file}" > /dev/null; then
log "error" "Xml parsing error in ${xml_file}, resolve the error and attempt to start again"
fi
done
else
log "warning" "$(important "xmllint") not installed or not in PATH, skipping lint check"
fi
log "info" "Starting $(important "${server_name}") located at $(important "${server_directory}") on port $(important "${server_port}")"
if tmux has-session -t "${server_session_name}" >/dev/null 2>&1; then
@ -506,7 +516,6 @@ backup() {
[[ -z "${server_id}" ]] && log "error" "No server id passed" && exit 1
# Kill the server to ensure a smooth backup
kill_server -s "${server_id}" >/dev/null 2>&1
@ -626,7 +635,6 @@ usage() {
Exposes options to backup 7 Days To Die Servers, pass -h to it for details"
}
main() {
# Parse input arguments
#