Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(st): resolve Stationeers config issues #4733

Merged
merged 6 commits into from
Jan 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading