From 01919f28308ef8a9f1c6d3ae4ef3c8e9d32e492b Mon Sep 17 00:00:00 2001 From: UltimateByte Date: Mon, 16 Apr 2018 02:36:21 +0200 Subject: [PATCH] Major cleaning of tmux handling - Improved tmux session listing - Removed redundant checks - Reorganized tests orders - Added a missing space --- lgsm/functions/check_status.sh | 2 +- lgsm/functions/command_start.sh | 47 +++++++++++---------------------- lgsm/functions/command_stop.sh | 25 +++++++----------- 3 files changed, 26 insertions(+), 48 deletions(-) diff --git a/lgsm/functions/check_status.sh b/lgsm/functions/check_status.sh index e297f24c2..fa180a375 100644 --- a/lgsm/functions/check_status.sh +++ b/lgsm/functions/check_status.sh @@ -32,5 +32,5 @@ elif [ "${gamename}" == "Mumble" ]; then status=1 fi else - status=$(tmux list-sessions 2>&1 | awk '{print $1}' | grep -Ec "^${servicename}:") + status=$(tmux list-sessions -F "#{session_name}" | grep -Ecx "^${servicename}") fi diff --git a/lgsm/functions/command_start.sh b/lgsm/functions/command_start.sh index 2dc10ecf3..7bea77da8 100644 --- a/lgsm/functions/command_start.sh +++ b/lgsm/functions/command_start.sh @@ -25,14 +25,6 @@ fn_start_teamspeak3(){ touch "${servercfgfullpath}" fi sleep 0.5 - check_status.sh - if [ "${status}" != "0" ]; then - fn_print_info_nl "${servername} is already running" - fn_script_log_error "${servername} is already running" - if [ -z "${exitbypass}" ]; then - core_exit.sh - fi - fi if [ -f "${lgsmlog}" ]; then mv "${lgsmlog}" "${lgsmlogdate}" fi @@ -81,28 +73,15 @@ fn_start_tmux(){ fi # Log rotation - check_status.sh - if [ "${status}" == "0" ]; then - fn_script_log_info "Rotating log files" - if [ "${engine}" == "unreal2" ]; then - if [ -f "${gamelog}" ]; then - mv "${gamelog}" "${gamelogdate}" - fi + fn_script_log_info "Rotating log files" + if [ "${engine}" == "unreal2" ]; then + if [ -f "${gamelog}" ]; then + mv "${gamelog}" "${gamelogdate}" fi mv "${lgsmlog}" "${lgsmlogdate}" mv "${consolelog}" "${consolelogdate}" fi - # If server is already running exit - check_status.sh - if [ "${status}" != "0" ]; then - fn_print_info_nl "${servername} is already running" - fn_script_log_error "${servername} is already running" - if [ -z "${exitbypass}" ]; then - core_exit.sh - fi - fi - # Create lockfile date > "${rootdir}/${lockselfname}" cd "${executabledir}" @@ -209,17 +188,23 @@ sleep 0.5 fn_print_dots "${servername}" sleep 0.5 check.sh +# Is the server already started +if [ "${status}" != "0" ]; then # $status comes from check_status.sh, which is run by check.sh for this command + fn_print_info_nl "${servername} is already running" + fn_script_log_error "${servername} is already running" + if [ -z "${exitbypass}" ]; then + core_exit.sh + fi +fi fix.sh info_config.sh logs.sh # Will check for updates is updateonstart is yes -if [ "${status}" == "0" ]; then - if [ "${updateonstart}" == "yes" ]||[ "${updateonstart}" == "1" ]||[ "${updateonstart}" == "on" ]; then - exitbypass=1 - unset updateonstart - command_update.sh - fi +if [ "${updateonstart}" == "yes" ]||[ "${updateonstart}" == "1" ]||[ "${updateonstart}" == "on" ]; then + exitbypass=1 + unset updateonstart + command_update.sh fi if [ "${gamename}" == "TeamSpeak 3" ]; then diff --git a/lgsm/functions/command_stop.sh b/lgsm/functions/command_stop.sh index 24223974e..54fb73bba 100644 --- a/lgsm/functions/command_stop.sh +++ b/lgsm/functions/command_stop.sh @@ -277,28 +277,21 @@ fn_stop_tmux(){ fn_print_ok_nl "${servername}" fn_script_log_pass "Stopped ${servername}" else - fn_print_fail_nl "Unable to stop${servername}" - fn_script_log_fatal "Unable to stop${servername}" + fn_print_fail_nl "Unable to stop ${servername}" + fn_script_log_fatal "Unable to stop ${servername}" fi } # checks if the server is already stopped before trying to stop. fn_stop_pre_check(){ - if [ "${gamename}" == "TeamSpeak 3" ]; then - check_status.sh - if [ "${status}" == "0" ]; then - fn_print_info_nl "${servername} is already stopped" - fn_script_log_error "${servername} is already stopped" - else - fn_stop_teamspeak3 - fi +# Is the server already stopped + if [ "${status}" == "0" ]; then # $status comes from check_status.sh, which is run by check.sh for this command + fn_print_info_nl "${servername} is already stopped" + fn_script_log_error "${servername} is already stopped" + elif [ "${gamename}" == "TeamSpeak 3" ]; then + fn_stop_teamspeak3 else - if [ "${status}" == "0" ]; then - fn_print_info_nl "${servername} is already stopped" - fn_script_log_error "${servername} is already stopped" - else - fn_stop_graceful_select - fi + fn_stop_graceful_select fi }