Skip to content

Commit

Permalink
fix(st): resolve Stationeers config issues (#4733)
Browse files Browse the repository at this point in the history
* feat(st): add config install

* update start parameters

* bug

* ui fix

* rename worldname to worldsave

* add worldname to legacy vars
  • Loading branch information
dgibbs64 authored Jan 5, 2025
1 parent 9495437 commit abfe5c1
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 34 deletions.
4 changes: 2 additions & 2 deletions lgsm/config-default/config-lgsm/stserver/_default.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
#### Game Server Settings ####

## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
worldname="moon_save"
worldsave="moon_save"
worldtype="Moon"

## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-LOADLATEST ${worldname} ${worldtype}"
startparameters="-LOAD ${worldsave} ${worldtype}"

#### LinuxGSM Settings ####

Expand Down
2 changes: 1 addition & 1 deletion lgsm/modules/command_dev_query_raw.sh
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,7 @@ fn_messages_separator
echo -e ""
echo -e "${bold}${lightyellow}SS Output${default}"
fn_messages_separator
fn_info_message_ports
fn_info_messages_ports
eval "${portcommand}"

echo -e ""
Expand Down
60 changes: 30 additions & 30 deletions lgsm/modules/command_monitor.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,10 @@ fn_monitor_check_monitoring() {
date '+%s' > "${lockdir:?}/${selfname}-monitoring.lock"
elif [ ! -f "${lockdir}/${selfname}-monitoring.lock" ]; then
# Monitor does not run if lockfile is not found.
fn_print_dots "Checking lockfile:"
fn_print_dots "Checking lockfile"
fn_print_checking_eol
fn_script_log_info "Checking lockfile: CHECKING"
fn_print_error "Checking lockfile: No lockfile found:"
fn_print_error "Checking lockfile: No lockfile found"
fn_print_error_eol_nl
fn_script_log_error "Checking lockfile: No lockfile found: ERROR"
echo -e "* Start ${selfname} to run monitor."
Expand All @@ -31,10 +31,10 @@ fn_monitor_check_monitoring() {

fn_monitor_check_install() {
if [ "$(pgrep -fc -u "${USER}" "/bin/bash ./${selfname} install")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} i")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} auto-install")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} ai")" != "0" ]; then
fn_print_dots "Checking installer:"
fn_print_dots "Checking installer"
fn_print_checking_eol
fn_script_log_info "Checking installer: CHECKING"
fn_print_info "Checking installer: LinuxGSM is installing:"
fn_print_info "Checking installer: LinuxGSM is installing"
fn_print_info_eol_nl
fn_script_log_pass "Checking installer: LinuxGSM is installing"
core_exit.sh
Expand All @@ -43,9 +43,9 @@ fn_monitor_check_install() {

fn_monitor_check_debug() {
if [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} debug")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} d")" != "0" ]; then
fn_print_dots "Checking debug:"
fn_print_dots "Checking debug"
fn_print_checking_eol
fn_print_info "Checking debug: Debug is running:"
fn_print_info "Checking debug: Debug is running"
fn_print_info_eol_nl
fn_script_log_pass "Checking debug: Debug is running"
core_exit.sh
Expand All @@ -54,9 +54,9 @@ fn_monitor_check_debug() {

fn_monitor_check_details() {
if [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} details")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} dt")" != "0" ]; then
fn_print_dots "Checking details:"
fn_print_dots "Checking details"
fn_print_checking_eol
fn_print_info "Checking details: Details is running:"
fn_print_info "Checking details: Details is running"
fn_print_info_eol_nl
fn_script_log_pass "Checking details: Details is running"
core_exit.sh
Expand All @@ -67,19 +67,19 @@ fn_monitor_check_starting() {
# Remove stale lockfile.
if [ -f "${lockdir}/${selfname}-starting.lock" ]; then
if [ "$(find "${lockdir}/${selfname}-starting.lock" -mmin +5)" ]; then
fn_print_dots "Checking start:"
fn_print_dots "Checking start"
fn_print_checking_eol
fn_print_warn "Checking start: Removing stale lockfile:"
fn_print_warn "Checking start: Removing stale lockfile"
fn_print_warn_eol_nl
fn_script_log_warn "Checking start: Removing stale lockfile"
rm -f "${lockdir:?}/${selfname}-starting.lock"
fi
fi

if [ -f "${lockdir}/${selfname}-starting.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} start")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} s")" != "0" ]]; then
fn_print_dots "Checking start:"
fn_print_dots "Checking start"
fn_print_checking_eol
fn_print_info "Checking start: LinuxGSM is starting:"
fn_print_info "Checking start: LinuxGSM is starting"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: LinuxGSM is starting"
core_exit.sh
Expand All @@ -90,19 +90,19 @@ fn_monitor_check_stopping() {
# Remove stale lockfile.
if [ -f "${lockdir}/${selfname}-stopping.lock" ]; then
if [ "$(find "${lockdir}/${selfname}-stopping.lock" -mmin +5)" ]; then
fn_print_dots "Checking stop:"
fn_print_dots "Checking stop"
fn_print_checking_eol
fn_print_warn "Checking stop: Removing stale lockfile:"
fn_print_warn "Checking stop: Removing stale lockfile"
fn_print_warn_eol_nl
fn_script_log_warn "Checking stop: Removing stale lockfile"
rm -f "${lockdir:?}/${selfname}-stopping.lock"
fi
fi

if [ -f "${lockdir}/${selfname}-stopping.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} stop")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} s")" != "0" ]]; then
fn_print_dots "Checking stop:"
fn_print_dots "Checking stop"
fn_print_checking_eol
fn_print_info "Checking stop: LinuxGSM is stopping:"
fn_print_info "Checking stop: LinuxGSM is stopping"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: LinuxGSM is stopping"
core_exit.sh
Expand All @@ -113,19 +113,19 @@ fn_monitor_check_backup() {
# Remove stale lockfile.
if [ -f "${lockdir}/backup.lock" ]; then
if [ "$(find "${lockdir}/backup.lock" -mmin +60)" ]; then
fn_print_dots "Checking backup:"
fn_print_dots "Checking backup"
fn_print_checking_eol
fn_print_warn "Checking backup: Removing stale lockfile:"
fn_print_warn "Checking backup: Removing stale lockfile"
fn_print_warn_eol
fn_script_log_warn "Checking backup: Removing stale lockfile"
rm -f "${lockdir:?}/backup.lock"
fi
fi

if [ -f "${lockdir}/backup.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} backup")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} b")" != "0" ]]; then
fn_print_dots "Checking backup:"
fn_print_dots "Checking backup"
fn_print_checking_eol
fn_print_info "Checking backup: Backup is running:"
fn_print_info "Checking backup: Backup is running"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: Backup is running"
core_exit.sh
Expand All @@ -136,19 +136,19 @@ fn_monitor_check_update() {
# Remove stale lockfile.
if [ -f "${lockdir}/update.lock" ]; then
if [ "$(find "${lockdir}/update.lock" -mmin +15)" ]; then
fn_print_dots "Checking update:"
fn_print_dots "Checking update"
fn_print_checking_eol
fn_print_warn "Checking update: Removing stale lockfile:"
fn_print_warn "Checking update: Removing stale lockfile"
fn_print_warn_eol_nl
fn_script_log_warn "Checking update: Removing stale lockfile"
rm -f "${lockdir:?}/update.lock"
fi
fi

if [ -f "${lockdir}/update.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} update")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} validate")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} v")" != "0" || "$(pgrep -fc force-update "${USER}" "/bin/bash ./${selfname} fu")" != "0" ]]; then
fn_print_dots "Checking update:"
fn_print_dots "Checking update"
fn_print_checking_eol
fn_print_info "Checking update: LinuxGSM is updating the game server:"
fn_print_info "Checking update: LinuxGSM is updating the game server"
fn_print_info_eol_nl
fn_script_log_pass "Checking update: LinuxGSM is updating the game server"
core_exit.sh
Expand All @@ -159,10 +159,10 @@ fn_monitor_check_update() {
fn_monitor_check_update_source() {
if [ -f "${consolelogdir}/${selfname}-console.log" ] && [ "${engine}" == "source" ]; then
if grep -q "Your server needs to be restarted in order to receive the latest update." "${consolelogdir}/${selfname}-console.log"; then
fn_print_dots "Checking update:"
fn_print_dots "Checking update"
fn_print_checking_eol
fn_script_log_info "Checking update: CHECKING"
fn_print_ok "Checking update:"
fn_print_ok "Checking update"
fn_print_ok_eol_nl
fn_script_log_info "Checking update: ${selfname} has requested an update and needs to be restarted"
alert="update-request"
Expand All @@ -182,7 +182,7 @@ fn_monitor_check_session() {
sessionheight="23"
# Check for PIDS with identical tmux sessions running.
if [ "$(pgrep -fcx "tmux -L ${socketname} new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" -ge "2" ]; then
fn_print_error "Checking session: There are PIDS with identical tmux sessions running:"
fn_print_error "Checking session: There are PIDS with identical tmux sessions running"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: There are PIDS with identical tmux sessions running"
Expand All @@ -192,7 +192,7 @@ fn_monitor_check_session() {
core_exit.sh
# Check for tmux pids with the same tmux session and socket names. This will reduce issues with migration to release v23.5.0. #4296
elif [ "$(pgrep -fc -u "${USER}" "tmux -L ${sessionname} new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" != "0" ]; then
fn_print_error "Checking session: PIDS with the same tmux session and socket names are running:"
fn_print_error "Checking session: PIDS with the same tmux session and socket names are running"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: PIDS with the same tmux session and socket names are running"
Expand All @@ -202,7 +202,7 @@ fn_monitor_check_session() {
core_exit.sh
# Check for tmux pids that are using the old type of tmux session. This will reduce issues with migration to release v23.5.0. #4296
elif [ "$(pgrep -fc -u "${USER}" "tmux new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" != "0" ]; then
fn_print_error "Checking session: PIDS with old type tmux session are running:"
fn_print_error "Checking session: PIDS with old type tmux session are running"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: PIDS with old type tmux session are running"
Expand Down Expand Up @@ -233,7 +233,7 @@ fn_monitor_check_session() {
# Monitor will check queryport is set before continuing.
fn_monitor_check_queryport() {
if [ -z "${queryport}" ] || [ "${queryport}" == "0" ]; then
fn_print_dots "Checking port:"
fn_print_dots "Checking port"
fn_print_checking_eol
fn_script_log_info "Checking port: CHECKING"
if [ -n "${rconenabled}" ] && [ "${rconenabled}" != "true" ] && [ "${shortname}" == "av" ]; then
Expand Down
6 changes: 6 additions & 0 deletions lgsm/modules/core_legacy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ if [ -n "${autosaveinterval}" ]; then
saveinterval="${autosaveinterval}"
fi

if [ "${shortname}" == "st" ]; then
if [ -n "${worldname}" ]; then
worldsave="${worldname}"
fi
fi

# Added as part of migrating functions dir to modules dir.
# Will remove functions dir if files in modules dir older than 14 days
functionsdir="${lgsmdir}/modules"
Expand Down
2 changes: 1 addition & 1 deletion lgsm/modules/info_game.sh
Original file line number Diff line number Diff line change
Expand Up @@ -673,7 +673,7 @@ fn_info_game_st() {
saveinterval="${saveinterval:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
worldname="${worldname:-"NOT SET"}"
worldsave="${worldsave:-"NOT SET"}"
worldtype="${worldtype:-"NOT SET"}"
}

Expand Down
5 changes: 5 additions & 0 deletions lgsm/modules/install_config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,11 @@ elif [ "${shortname}" == "sb" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "st" ]; then
array_configs+=(setting.xml)
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "stn" ]; then
array_configs+=(ServerConfig.txt ServerUsers.txt TpPresets.json UserPermissions.json)
fn_default_config_remote
Expand Down

0 comments on commit abfe5c1

Please sign in to comment.