diff --git a/lgsm/config-default/config-lgsm/ut3server/_default.cfg b/lgsm/config-default/config-lgsm/ut3server/_default.cfg index f701b563d..3469c4940 100644 --- a/lgsm/config-default/config-lgsm/ut3server/_default.cfg +++ b/lgsm/config-default/config-lgsm/ut3server/_default.cfg @@ -11,7 +11,7 @@ ## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters ip="0.0.0.0" port="7777" -queryport="25300" +queryport="6500" defaultmap="VCTF-Suspense" game="UTGameContent.UTVehicleCTFGame_Content" mutators="" #"UTGame.UTMutator_Instagib,UTGame.UTMutator_LowGrav" diff --git a/lgsm/functions/alert.sh b/lgsm/functions/alert.sh index 31df0e18c..07abe0fb7 100644 --- a/lgsm/functions/alert.sh +++ b/lgsm/functions/alert.sh @@ -45,12 +45,12 @@ fn_alert_restart(){ } fn_alert_restart_query(){ - fn_script_log_info "Sending alert: Restarted: ${gsquerycmd}" + fn_script_log_info "Sending alert: Restarted: ${servicename}" alertsubject="Alert - ${servicename} - Restarted" alertemoji="🚨" alertsound="2" alerturl="not enabled" - alertbody="gsquery.py failed to query: ${gsquerycmd}" + alertbody="Unable to query: ${servicename}" } fn_alert_update(){ diff --git a/lgsm/functions/check_ip.sh b/lgsm/functions/check_ip.sh index 57971725a..8d19c1dc6 100644 --- a/lgsm/functions/check_ip.sh +++ b/lgsm/functions/check_ip.sh @@ -17,6 +17,7 @@ if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${gamename}" != "Mumble" ]&&[ "${travi getip=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -v 127.0.0) getipwc=$(${ipcommand} -o -4 addr|awk '{print $4}'|grep -oe '\([0-9]\{1,3\}\.\?\)\{4\}'|grep -vc 127.0.0) info_config.sh + info_parms.sh # IP is not set to specific IP if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then diff --git a/lgsm/functions/command_details.sh b/lgsm/functions/command_details.sh index 53d72a833..3474ae3ac 100644 --- a/lgsm/functions/command_details.sh +++ b/lgsm/functions/command_details.sh @@ -12,10 +12,11 @@ local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" # Run checks and gathers details to display. check.sh info_config.sh +info_parms.sh info_distro.sh info_glibc.sh -info_parms.sh info_messages.sh +query_gamedig.sh fn_info_message_distro fn_info_message_performance fn_info_message_disk diff --git a/lgsm/functions/command_dev_query_raw.sh b/lgsm/functions/command_dev_query_raw.sh new file mode 100644 index 000000000..e77aed4f7 --- /dev/null +++ b/lgsm/functions/command_dev_query_raw.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# command_dev_query_raw.sh function +# Author: Daniel Gibbs +# Website: https://gameservermanagers.com +# Description: Raw gamedig output of the server. + +echo "=================================" +echo "Gamedig Raw Output" +echo "=================================" +echo"" +if [ ! "$(command -v gamedig 2>/dev/null)" ]; then + fn_print_failure_nl "gamedig not installed" +fi +if [ ! "$(command -v jq >/dev/null 2>&1)" ]; then + fn_print_failure_nl "jq not installed" +fi + + +info_config.sh +info_parms.sh +if [ "${engine}" == "idtech3_ql" ]; then + local engine="quakelive" +elif [ "${gamename}" == "Killing Floor 2" ]; then + local engine="unreal4" +fi + +query_gamedig.sh +echo "gamedig --type \"${gamedigengine}\" --host \"${ip}\" --port \"${port}\"|jq" +echo"" +echo "${gamedigraw}" | jq +echo"" +echo "=================================" +echo "gsquery Raw Output" +echo "=================================" +echo"" +echo "./query_gsquery.py -a \"${ip}\" -p \"${port}\" -e \"${engine}\"" +if [ ! -f "${functionsdir}/query_gsquery.py" ]; then + fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5" +fi +"${functionsdir}"/query_gsquery.py -a "${ip}" -p "${port}" -e "${engine}" \ No newline at end of file diff --git a/lgsm/functions/command_monitor.sh b/lgsm/functions/command_monitor.sh index cf1cbdd5e..061b6de18 100644 --- a/lgsm/functions/command_monitor.sh +++ b/lgsm/functions/command_monitor.sh @@ -4,12 +4,82 @@ # Contributor: UltimateByte # Website: https://linuxgsm.com # Description: Monitors server by checking for running processes. -# then passes to monitor_gsquery.sh. +# then passes to gamedig and gsquery. local commandname="MONITOR" local commandaction="Monitor" local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" +fn_monitor_loop(){ +# Will query up to 5 times every 15 seconds. +# Query will wait up to 60 seconds to confirm server is down giving server time if changing map. +for queryattempt in {1..5}; do + fn_print_dots "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: " + fn_print_querying_eol + fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : QUERYING" + sleep 0.5 + if [ "${querymethod}" == "gamedig" ];then + query_gamedig.sh + elif [ "${querymethod}" == "gsquery" ];then + if [ ! -f "${functionsdir}/query_gsquery.py" ]; then + fn_fetch_file_github "lgsm/functions" "query_gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5" + fi + "${functionsdir}"/query_gsquery.py -a "${ip}" -p "${queryport}" -e "${engine}" > /dev/null 2>&1 + querystatus="$?" + elif [ "${querymethod}" == "telnet" ];then + bash -c 'exec 3<> /dev/tcp/'${ip}'/'${queryport}'' + querystatus="$?" + fi + + if [ "${querystatus}" == "0" ]; then + # Server query OK + sleep 0.5 + fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: " + fn_print_ok_eol_nl + fn_script_log_pass "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: OK" + exitcode=0 + monitorpass=1 + core_exit.sh + else + # Server query FAIL + fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL" + fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: " + fn_print_fail_eol + sleep 1 + # monitor try gamedig first then gsquery before restarting + if [ "${querymethod}" == "gsquery" ];then + if [ "${totalseconds}" -ge "59" ]; then + # Server query FAIL for over 59 seconds reboot server + fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: " + fn_print_fail_eol_nl + fn_script_log_error "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt}: FAIL" + sleep 1 + + # Send alert if enabled + alert="restartquery" + alert.sh + command_restart.sh + core_exit.sh + fi + elif [ "${querymethod}" == "gamedig" ];then + if [ "${totalseconds}" -ge "29" ]; then + break + fi + fi + + # Seconds counter + for seconds in {1..15}; do + fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: WAIT" + totalseconds=$((totalseconds + 1)) + sleep 1 + if [ "${seconds}" == "15" ]; then + break + fi + done + fi +done +} + fn_monitor_check_lockfile(){ # Monitor does not run it lockfile is not found if [ ! -f "${rootdir}/${lockselfname}" ]; then @@ -30,77 +100,72 @@ fn_monitor_check_update(){ fi } -fn_monitor_msg_checking(){ +fn_monitor_check_session(){ fn_print_dots "Checking session: " fn_print_checking_eol fn_script_log_info "Checking session: CHECKING" sleep 1 -} - -fn_monitor_teamspeak3(){ if [ "${status}" != "0" ]; then fn_print_ok "Checking session: " fn_print_ok_eol_nl fn_script_log_pass "Checking session: OK" else - fn_print_error "Checking session: ${ts3error}: " + if [ "${gamename}" == "TeamSpeak 3" ]; then + fn_print_error "Checking session: ${ts3error}: " + elif [ "${gamename}" == "Mumble" ]; then + fn_print_error "Checking session: Not listening to port ${queryport}" + else + fn_print_error "Checking session: " + fi fn_print_fail_eol_nl - fn_script_log_error "Checking session: ${ts3error}: FAIL" - failurereason="${ts3error}" + fn_script_log_error "Checking session: FAIL" alert="restart" alert.sh fn_script_log_info "Monitor is starting ${servername}" sleep 1 command_restart.sh fi + sleep 1 } -fn_monitor_mumble(){ - if [ "${status}" != "0" ]; then - fn_print_ok "Checking session: " - fn_print_ok_eol_nl - fn_script_log_pass "Checking session: OK" - else - fn_print_error "Checking session: Not listening to port ${port}" - fn_print_fail_eol_nl - fn_script_log_error "Checking session: Not listening to port ${port}" - failurereason="Checking session: Not listening to port ${port}" - alert="restart" - alert.sh - fn_script_log_info "Monitor is starting ${servername}" - sleep 1 - command_restart.sh - fi -} -fn_monitor_tmux(){ - # checks that tmux session is running - if [ "${status}" != "0" ]; then - fn_print_ok "Checking session: " - fn_print_ok_eol_nl - fn_script_log_pass "Checking session: OK" - # runs gsquery check on game with specific engines. - local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 unreal4 ) - for allowed_engine in "${allowed_engines_array[@]}" +fn_monitor_query(){ + fn_script_log_info "Querying port: query enabled" + # engines that work with query + local allowed_engines_array=( avalanche2.0 avalanche3.0 goldsource idtech2 idtech3 idtech3_ql iw2.0 iw3.0 madness quake refractor realvirtuality source spark starbound unity3d unreal unreal2 unreal4 ) + for allowed_engine in "${allowed_engines_array[@]}" + do + if [ "${engine}" == "idtech3_ql" ]; then + local engine="quakelive" + elif [ "${gamename}" == "Killing Floor 2" ]; then + local engine="unreal4" + fi + + # will first attempt to use gamedig then gsquery + totalseconds=0 + local query_methods_array=( gamedig gsquery ) + for query_method in "${query_methods_array[@]}" do - if [ "${allowed_engine}" == "starbound" ]; then - info_config.sh - if [ "${queryenabled}" == "true" ]; then - monitor_gsquery.sh + if [ "${query_method}" == "gamedig" ]; then + # will bypass gamedig if not installed + if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ]; then + if [ -z "${monitorpass}" ]; then + querymethod="${query_method}" + fn_monitor_loop + fi + fi + else + if [ -z "${monitorpass}" ]; then + querymethod="${query_method}" + fn_monitor_loop fi - elif [ "${allowed_engine}" == "${engine}" ]; then - monitor_gsquery.sh fi done - else - fn_print_error "Checking session: " - fn_print_fail_eol_nl - fn_script_log_error "Checking session: FAIL" - alert="restart" - alert.sh - fn_script_log_info "Monitor is starting ${servername}" - sleep 1 - command_restart.sh - fi + done +} + +fn_monitor_query_telnet(){ + querymethod="telnet" + fn_monitor_loop } monitorflag=1 @@ -109,15 +174,21 @@ sleep 1 check.sh logs.sh info_config.sh +info_parms.sh fn_monitor_check_lockfile fn_monitor_check_update -fn_monitor_msg_checking -if [ "${gamename}" == "TeamSpeak 3" ]; then - fn_monitor_teamspeak3 -elif [ "${gamename}" == "Mumble" ]; then - fn_monitor_mumble +fn_monitor_check_session +# Query has to be enabled in starbound config +if [ "${gamename}" == "starbound" ]; then + if [ "${queryenabled}" == "true" ]; then + fn_monitor_query + fi +elif [ "${gamename}" == "Teamspeak 3" ]; then + fn_monitor_query_telnet else - fn_monitor_tmux + fn_monitor_query fi + core_exit.sh + diff --git a/lgsm/functions/core_exit.sh b/lgsm/functions/core_exit.sh index 58860d857..9d4124a9a 100644 --- a/lgsm/functions/core_exit.sh +++ b/lgsm/functions/core_exit.sh @@ -8,6 +8,9 @@ fn_exit_dev_debug(){ if [ -f "${rootdir}/.dev-debug" ]; then echo "" echo "${function_selfname} exiting with code: ${exitcode}" + if [ -f "${rootdir}/dev-debug.log" ]; then + grep "functionfile=" "${rootdir}/dev-debug.log"| sed 's/functionfile=//g' > "${rootdir}/dev-debug-function-order.log" + fi fi } diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh index 0bea6c7a3..02b8a0383 100644 --- a/lgsm/functions/core_functions.sh +++ b/lgsm/functions/core_functions.sh @@ -269,6 +269,11 @@ functionfile="${FUNCNAME}" fn_fetch_function } +command_dev_query_raw.sh(){ +functionfile="${FUNCNAME}" +fn_fetch_function +} + # Fix fix.sh(){ @@ -363,6 +368,11 @@ functionfile="${FUNCNAME}" fn_fetch_function } +info_gamedig.sh(){ +functionfile="${FUNCNAME}" +fn_fetch_function +} + info_glibc.sh(){ functionfile="${FUNCNAME}" fn_fetch_function @@ -426,9 +436,9 @@ functionfile="${FUNCNAME}" fn_fetch_function } -# Monitor +# Query -monitor_gsquery.sh(){ +query_gamedig.sh(){ functionfile="${FUNCNAME}" fn_fetch_function } diff --git a/lgsm/functions/core_getopt.sh b/lgsm/functions/core_getopt.sh index fb948ed1b..8cfa80b75 100644 --- a/lgsm/functions/core_getopt.sh +++ b/lgsm/functions/core_getopt.sh @@ -47,6 +47,7 @@ cmd_dev_debug=( "dev;developer" "command_dev_debug.sh" "Enable developer Mode." cmd_dev_detect_deps=( "dd;detect-deps" "command_dev_detect_deps.sh" "Detect required dependencies." ) cmd_dev_detect_glibc=( "dg;detect-glibc" "command_dev_detect_glibc.sh" "Detect required glibc." ) cmd_dev_detect_ldd=( "dl;detect-ldd" "command_dev_detect_ldd.sh" "Detect required dynamic dependencies." ) +cmd_dev_query_raw=( "qr;query-raw" "command_dev_query_raw.sh" "The raw output of gamedig and gsquery." ) cmd_dev_clear_functions=( "cf;clear-functions" "command_dev_clear_functions.sh" "Delete the contents of the functions dir." ) ### Set specific opt here ### @@ -131,7 +132,7 @@ currentopt+=( "${cmd_install[@]}" "${cmd_auto_install[@]}" ) ## Developer commands currentopt+=( "${cmd_dev_debug[@]}" ) if [ -f ".dev-debug" ]; then - currentopt+=( "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_clear_functions[@]}" ) + currentopt+=( "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" ) fi ### Build list of available commands diff --git a/lgsm/functions/info_config.sh b/lgsm/functions/info_config.sh index ce20521f7..b7d1e9cd3 100644 --- a/lgsm/functions/info_config.sh +++ b/lgsm/functions/info_config.sh @@ -704,7 +704,6 @@ fn_info_config_unreal3(){ servername="${unavailable}" serverpassword="${unavailable}" adminpassword="${unavailable}" - port="${unavailable}" webadminenabled="${unavailable}" webadminport="${zero}" webadminuser="${unavailable}" @@ -712,7 +711,6 @@ fn_info_config_unreal3(){ else servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - port=$(grep "Port" "${servercfgdir}/UTEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]') webadminenabled=$(grep "bEnabled" "${servercfgdir}/UTWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') webadminport=$(grep "ListenPort" "${servercfgdir}/UTWeb.ini" | grep -v "#" | tr -cd '[:digit:]') webadminuser="Admin" @@ -736,13 +734,13 @@ fn_info_config_kf2(){ serverpassword="${unavailable}" adminpassword="${unavailable}" port="${unavailable}" + queryport="${unavailable}" webadminenabled="${unavailable}" webadminport="${zero}" webadminuser="${unavailable}" webadminpass="${unavailable}" else servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - # Not in UT3 serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') port=$(grep "Port" "${servercfgdir}/LinuxServer-KFEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]') diff --git a/lgsm/functions/info_distro.sh b/lgsm/functions/info_distro.sh index 5a4907e08..a78f72185 100644 --- a/lgsm/functions/info_distro.sh +++ b/lgsm/functions/info_distro.sh @@ -136,5 +136,12 @@ fi # External IP address if [ -z "${extip}" ];then - extip=$(${curlpath} -m 3 ifconfig.co 2>/dev/null) + extip=$(${curlpath} -m 3 ifconfig.co > "${tmpdir}/extip.txt" 2>/dev/null) + if [ $? -ne 0 ]; then + if [ -f "${tmpdir}/extip.txt" ];then + echo "${tmpdir}/extip.txt" + else + echo "x.x.x.x" + fi + fi fi \ No newline at end of file diff --git a/lgsm/functions/info_messages.sh b/lgsm/functions/info_messages.sh index 5ecab96d3..7b11560fc 100644 --- a/lgsm/functions/info_messages.sh +++ b/lgsm/functions/info_messages.sh @@ -2,7 +2,7 @@ # LinuxGSM info_messages.sh function # Author: Daniel Gibbs # Website: https://linuxgsm.com -# Description: Defines server info messages for details, alerts. +# Description: Defines server info messages for details and alerts. # Standard Details # This applies to all engines @@ -122,7 +122,9 @@ fn_info_message_gameserver(){ fn_messages_separator { # Server name - if [ -n "${servername}" ]; then + if [ -n "${gdname}" ];then + echo -e "${blue}Server name:\t${default}${gdname}" + elif [ -n "${servername}" ]; then echo -e "${blue}Server name:\t${default}${servername}" fi @@ -181,9 +183,43 @@ fn_info_message_gameserver(){ echo -e "${blue}Stats password:\t${default}${statspassword}" fi - # Maxplayers - if [ -n "${maxplayers}" ]; then - echo -e "${blue}Maxplayers:\t${default}${maxplayers}" + # Players + + if [ "${querystatus}" != "0" ]; then + if [ -n "${maxplayers}" ]; then + echo -e "${blue}Maxplayers:\t${default}${maxplayers}" + fi + else + if [ -n "${gdplayers}" ]&&[ -n "${gdmaxplayers}" ]; then + echo -e "${blue}Players:\t${default}${gdplayers}/${gdmaxplayers}" + + elif [ -n "${gdplayers}" ]&&[ -n "${maxplayers}" ]; then + echo -e "${blue}Players:\t${default}${gdplayers}/${maxplayers}" + + elif [ -z "${gdplayers}" ]&&[ -n "${gdmaxplayers}" ]; then + echo -e "${blue}Players:\t${default}0/${gdmaxplayers}" + + elif [ -n "${gdplayers}" ]&&[ -z "${gdmaxplayers}" ]; then + echo -e "${blue}Players:\t${default}${gdplayers}|∞" + + elif [ -z "${gdplayers}" ]&&[ -z "${gdmaxplayers}" ]&&[ -n "${maxplayers}" ]; then + echo -e "${blue}Maxplayers:\t${default}${maxplayers}" + fi + fi + + # Bots + if [ -n "${gdbots}" ]; then + echo -e "${blue}Bots:\t${default}${gdbots}" + fi + + # Current Map + if [ -n "${gdmap}" ]; then + echo -e "${blue}Current Map:\t${default}${gdmap}" + fi + + # Default Map + if [ -n "${defaultmap}" ]; then + echo -e "${blue}Default Map:\t${default}${defaultmap}" fi # Game mode @@ -406,19 +442,19 @@ fn_info_message_ports(){ for port_edit in "${ports_edit_array[@]}" do if [ "${shortname}" == "ut3" ]; then - parmslocation="${servercfgdir}/UTEngine.ini\n${servercfgdir}/UTWeb.ini" + parmslocation="${servercfgdir}/UTWeb.ini" elif [ "${shortname}" == "kf2" ]; then parmslocation="${servercfgdir}/LinuxServer-KFEngine.ini\n${servercfgdir}/KFWeb.ini" elif [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then parmslocation="${servercfgfullpath}" fi done - # engines/games that require editing in the script file + # engines/games that require editing the parms local ports_edit_array=( "goldsource" "Factorio" "Hurtworld" "iw3.0" "Rust" "spark" "source" "starbound" "unreal4" "realvirtuality") for port_edit in "${ports_edit_array[@]}" do if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then - parmslocation="${selfname}" + parmslocation="${configdirserver}" fi done echo -e "${parmslocation}" @@ -948,7 +984,8 @@ fn_info_message_unreal3(){ echo -e "" { echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" - echo -e "> Game/Query\tINBOUND\t${port}\ttcp/udp" + echo -e "> Game\tINBOUND\t${port}\tudp" + echo -e "> Query\tINBOUND\t${queryport}\tudp" echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}" } | column -s $'\t' -t echo -e "" @@ -967,8 +1004,8 @@ fn_info_message_kf2(){ echo -e "" { echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL" - echo -e "> Game\tINBOUND\t${port}\ttcp" - echo -e "> Query\tINBOUND\t${queryport}\ttcp/udp" + echo -e "> Game\tINBOUND\t${port}\ttcp\tPort=${port}" + echo -e "> Query\tINBOUND\t${queryport}\tudp" echo -e "> Steam\tINBOUND\t20560\tudp" echo -e "> WebAdmin\tINBOUND\t${webadminport}\ttcp\tListenPort=${webadminport}" } | column -s $'\t' -t diff --git a/lgsm/functions/info_parms.sh b/lgsm/functions/info_parms.sh index 9fc856a80..c47171053 100644 --- a/lgsm/functions/info_parms.sh +++ b/lgsm/functions/info_parms.sh @@ -24,6 +24,7 @@ fn_info_parms_ark(){ fn_info_parms_realvirtuality(){ port=${port:-"0"} + queryport=$((port + 1)) } fn_info_parms_cod(){ @@ -106,6 +107,12 @@ fn_info_config_towerunite(){ fn_info_parms_unreal(){ defaultmap=${defaultmap:-"NOT SET"} + queryport=$((port + 1)) +} + +fn_info_parms_unreal2(){ + defaultmap=${defaultmap:-"NOT SET"} + queryport=$((port + 1)) } fn_info_parms_unreal3(){ @@ -158,7 +165,7 @@ elif [ "${gamename}" == "Tower Unite" ]; then # Unreal/Unreal 2 engine elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then fn_info_parms_unreal -# Unreal/Unreal 2 engine +# Unreal 3 engine elif [ "${engine}" == "unreal3" ]; then fn_info_parms_unreal3 fi diff --git a/lgsm/functions/install_config.sh b/lgsm/functions/install_config.sh index 91f03d23a..c7885091e 100644 --- a/lgsm/functions/install_config.sh +++ b/lgsm/functions/install_config.sh @@ -38,12 +38,15 @@ fn_default_config_remote(){ echo "copying ${config} config file." fn_script_log_info "copying ${servercfg} config file." if [ "${config}" == "${servercfgdefault}" ]; then + mkdir -p "${servercfgdir}" cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}" elif [ "${gamename}" == "ARMA 3" ]&&[ "${config}" == "${networkcfgdefault}" ]; then + mkdir -p "${servercfgdir}" cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}" elif [ "${gamename}" == "Don't Starve Together" ]&&[ "${config}" == "${clustercfgdefault}" ]; then cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}" else + mkdir -p "${servercfgdir}" cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}" fi done diff --git a/lgsm/functions/monitor_gsquery.sh b/lgsm/functions/monitor_gsquery.sh deleted file mode 100644 index 7ffca8c7c..000000000 --- a/lgsm/functions/monitor_gsquery.sh +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/bash -# LinuxGSM monitor_gsquery.sh function -# Author: Daniel Gibbs -# Website: https://linuxgsm.com -# Description: Uses gsquery.py to query the server port. -# Detects if the server has frozen with the process still running. - -local commandname="MONITOR" -local commandaction="Monitor" -local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" - -# Downloads gsquery.py if missing -if [ ! -f "${functionsdir}/gsquery.py" ]; then - fn_fetch_file_github "lgsm/functions" "gsquery.py" "${functionsdir}" "chmodx" "norun" "noforce" "nomd5" -fi - -info_config.sh - -if [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then - port=$((port + 1)) -elif [ "${engine}" == "realvirtuality" ]; then - port=$((port + 1)) -elif [ "${engine}" == "spark" ]; then - port=$((port + 1)) -elif [ "${engine}" == "idtech3_ql" ]; then - engine="quakelive" -fi - -if [ -n "${queryport}" ]; then - port="${queryport}" -fi - -fn_print_info "Querying port: gsquery.py enabled" -fn_script_log_info "Querying port: gsquery.py enabled" -sleep 1 - -# Will query up to 4 times every 15 seconds. -# Servers changing map can return a failure. -# Will Wait up to 60 seconds to confirm server is down giving server time to change map. -totalseconds=0 -for queryattempt in {1..5}; do - fn_print_dots "Querying port: ${ip}:${port} : ${totalseconds}/${queryattempt} : " - fn_print_querying_eol - fn_script_log_info "Querying port: ${ip}:${port} : ${queryattempt} : QUERYING" - - gsquerycmd=$("${functionsdir}"/gsquery.py -a "${ip}" -p "${port}" -e "${engine}" 2>&1) - exitcode=$? - - sleep 1 - if [ "${exitcode}" == "0" ]; then - # Server OK - fn_print_ok "Querying port: ${ip}:${port} : ${queryattempt} : " - fn_print_ok_eol_nl - fn_script_log_pass "Querying port: ${ip}:${port} : ${queryattempt} : OK" - exitcode=0 - break - else - # Server failed query - fn_script_log_info "Querying port: ${ip}:${port} : ${queryattempt} : ${gsquerycmd}" - - if [ "${queryattempt}" == "5" ]; then - # Server failed query 4 times confirmed failure - fn_print_fail "Querying port: ${ip}:${port} : ${totalseconds}/${queryattempt} : " - fn_print_fail_eol_nl - fn_script_log_error "Querying port: ${ip}:${port} : ${queryattempt} : FAIL" - sleep 1 - - # Send alert if enabled - alert="restartquery" - alert.sh - command_restart.sh - break - fi - - # Seconds counter - for seconds in {1..15}; do - fn_print_fail "Querying port: ${ip}:${port} : ${totalseconds}/${queryattempt} : ${red}${gsquerycmd}${default}" - totalseconds=$((totalseconds + 1)) - sleep 1 - if [ "${seconds}" == "15" ]; then - break - fi - done - fi -done -core_exit.sh \ No newline at end of file diff --git a/lgsm/functions/query_gamedig.sh b/lgsm/functions/query_gamedig.sh new file mode 100644 index 000000000..4249f8a76 --- /dev/null +++ b/lgsm/functions/query_gamedig.sh @@ -0,0 +1,96 @@ +#!/bin/bash +# query_gamedig.sh function +# Author: Daniel Gibbs +# Website: https://gameservermanagers.com +# Description: Querys a gameserver using node-gamedig. +# https://github.com/sonicsnes/node-gamedig + +#Check if gamedig and jq are installed +if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ]; then + + if [ "${engine}" == "idtech3_ql" ]; then + local engine="quakelive" + elif [ "${gamename}" == "Killing Floor 2" ]; then + local engine="unreal4" + fi + + local engine_query_array=( avalanche3.0 madness quakelive realvirtuality refractor source goldsource spark starbound unity3d unreal4 ) + for engine_query in "${engine_query_array[@]}" + do + if [ "${engine_query}" == "${engine}" ]; then + gamedigengine="protocol-valve" + fi + done + + local engine_query_array=( avalanche2.0 ) + for engine_query in "${engine_query_array[@]}" + do + if [ "${engine_query}" == "${engine}" ]; then + gamedigengine="jc2mp" + fi + done + + local engine_query_array=( idtech2 iw2.0 ) + for engine_query in "${engine_query_array[@]}" + do + if [ "${engine_query}" == "${engine}" ]; then + gamedigengine="protocol-quake2" + fi + done + + local engine_query_array=( idtech3 quake iw3.0 ) + for engine_query in "${engine_query_array[@]}" + do + if [ "${engine_query}" == "${engine}" ]; then + gamedigengine="protocol-quake3" + fi + done + + local shortname_query_array=( ts3 ) + for shortname_query in "${shortname_query_array[@]}" + do + if [ "${shortname_query}" == "${shortname}" ]; then + gamedigengine="teamspeak3" + fi + done + + + # will bypass query if server offline + check_status.sh + if [ "${status}" != "0" ]; then + # checks if query is working 0 = pass + querystatus=$(gamedig --type "${gamedigengine}" --host "${ip}" --port "${queryport}" | jq '.error|length') + # raw output + gamedigraw=$(gamedig --type "${gamedigengine}" --host "${ip}" --port "${queryport}") + + # server name + gdname=$(echo "${gamedigraw}" | jq -re '.name') + if [ "${gdname}" == "null" ]; then + gdname= + fi + + # numplayers + gdplayers=$(echo "${gamedigraw}" | jq -re '.players|length') + if [ "${gdplayers}" == "null" ]; then + gdplayers= + fi + + # maxplayers + gdmaxplayers=$(echo "${gamedigraw}" | jq -re '.maxplayers|length') + if [ "${gdmaxplayers}" == "null" ]; then + maxplayers= + fi + + # current map + gdmap=$(echo "${gamedigraw}" | jq -re '.map') + if [ "${gdmap}" == "null" ]; then + gdmap= + fi + + # numbots + gdbots=$(echo "${gamedigraw}" | jq -re '.raw.numbots') + if [ "${gdbots}" == "null" ]; then + gdbots= + fi + fi +fi \ No newline at end of file diff --git a/lgsm/functions/gsquery.py b/lgsm/functions/query_gsquery.py similarity index 98% rename from lgsm/functions/gsquery.py rename to lgsm/functions/query_gsquery.py index 18123bfe8..d672870b9 100644 --- a/lgsm/functions/gsquery.py +++ b/lgsm/functions/query_gsquery.py @@ -1,6 +1,6 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- -# PythonGSQ +# query_gsquery.py # Author: Anonymous & Daniel Gibbs # Website: https://linuxgsm.com # Description: Allows querying of various game servers. @@ -9,7 +9,7 @@ import optparse import socket import sys -class PythonGSQ: +class gsquery: def __init__(self, options, arguments): self.option = options self.argument = arguments @@ -118,5 +118,5 @@ if __name__ == '__main__': ) options, arguments = parser.parse_args() # - server = PythonGSQ(options, arguments) + server = gsquery(options, arguments) server.responding() diff --git a/tests/tests_jc2server.sh b/tests/tests_jc2server.sh index 738da502c..8e530761d 100644 --- a/tests/tests_jc2server.sh +++ b/tests/tests_jc2server.sh @@ -475,7 +475,7 @@ echo "" ) echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "0.2 - Enable dev-debug" echo "=================================" @@ -491,7 +491,7 @@ echo "" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "1.0 - start - no files" @@ -509,7 +509,7 @@ echo "" fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "1.1 - getopt" @@ -527,7 +527,7 @@ echo "" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "1.2 - getopt with incorrect args" @@ -546,7 +546,7 @@ getopt="abc123" fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "2.0 - install" @@ -563,7 +563,7 @@ echo "Command: ./jc2server auto-install" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.1 - start" @@ -582,7 +582,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.2 - start - online" @@ -601,7 +601,7 @@ fn_setstatus fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.3 - start - updateonstart" @@ -620,7 +620,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.4 - stop" @@ -639,7 +639,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.5 - stop - offline" @@ -658,7 +658,7 @@ fn_setstatus fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.6 - restart" @@ -677,7 +677,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.7 - restart - offline" @@ -696,7 +696,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "4.1 - update" echo "=================================" @@ -714,7 +714,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.2 - update - change buildid" @@ -735,7 +735,7 @@ sed -i 's/[0-9]\+/0/' "${serverfiles}/steamapps/appmanifest_${appid}.acf" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.3 - update - change buildid - online" @@ -756,7 +756,7 @@ sed -i 's/[0-9]\+/0/' "${serverfiles}/steamapps/appmanifest_${appid}.acf" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.4 - update - remove appmanifest file" @@ -777,7 +777,7 @@ rm --verbose "${serverfiles}/steamapps/appmanifest_${appid}.acf" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.5 - force-update" @@ -796,7 +796,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.6 - force-update - online" @@ -815,7 +815,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.7 - validate" @@ -834,7 +834,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "4.8 - validate - online" @@ -854,7 +854,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "Inserting IP address" @@ -883,7 +883,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "5.2 - monitor - offline - with lockfile" @@ -904,7 +904,7 @@ date > "${rootdir}/${lockselfname}" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "5.3 - monitor - offline - no lockfile" @@ -923,13 +923,13 @@ fn_setstatus fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" -echo "5.4 - monitor - gsquery.py failure" +echo "5.4 - monitor - query_gsquery.py failure" echo "=================================" echo "Description:" -echo "gsquery.py will fail to query port." +echo "query_gsquery.py will fail to query port." echo "Command: ./jc2server monitor" requiredstatus="ONLINE" fn_setstatus @@ -944,7 +944,7 @@ sed -i 's/[0-9]\+/0/' "${servercfgfullpath}" fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" fn_print_info_nl "Re-generating ${servercfg}." @@ -968,7 +968,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "6.1 - post details" @@ -987,7 +987,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "7.0 - backup" @@ -1002,7 +1002,7 @@ echo "test de-activated until issue #1839 fixed" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "8.0 - dev - detect glibc" @@ -1021,7 +1021,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "8.1 - dev - detect ldd" @@ -1040,7 +1040,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "8.2 - dev - detect deps" @@ -1059,7 +1059,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "=================================" diff --git a/tests/tests_ts3server.sh b/tests/tests_ts3server.sh index b6ee25f95..502bdc323 100644 --- a/tests/tests_ts3server.sh +++ b/tests/tests_ts3server.sh @@ -475,7 +475,7 @@ echo "" ) echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo"" echo "0.2 - Enable dev-debug" @@ -487,7 +487,7 @@ echo "" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo"" echo "1.0 - start - no files" @@ -505,7 +505,7 @@ echo "" fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "1.1 - getopt" @@ -523,7 +523,7 @@ echo "" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "1.2 - getopt with incorrect args" @@ -542,7 +542,7 @@ getopt="abc123" fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "2.0 - install" @@ -559,7 +559,7 @@ echo "Command: ./ts3server auto-install" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.1 - start" @@ -578,7 +578,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.2 - start - online" @@ -613,7 +613,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.4 - stop" @@ -632,7 +632,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.5 - stop - offline" @@ -651,7 +651,7 @@ fn_setstatus fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.6 - restart" @@ -670,7 +670,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "3.7 - restart - offline" @@ -689,7 +689,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "4.1 - update" echo "=================================" @@ -707,7 +707,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "5.1 - monitor - online" @@ -726,7 +726,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "5.2 - monitor - offline - with lockfile" @@ -747,7 +747,7 @@ date > "${rootdir}/${lockselfname}" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "5.3 - monitor - offline - no lockfile" @@ -766,7 +766,7 @@ fn_setstatus fn_test_result_fail echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "6.0 - details" @@ -785,7 +785,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "6.1 - post details" @@ -804,7 +804,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "7.0 - backup" @@ -819,7 +819,7 @@ echo "test de-activated until issue #1839 fixed" fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "8.0 - dev - detect glibc" @@ -838,7 +838,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "8.1 - dev - detect ldd" @@ -857,7 +857,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "8.2 - dev - detect deps" @@ -876,7 +876,7 @@ fn_setstatus fn_test_result_pass echo "run order" echo "=================" -grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' +grep functionfile= "${TRAVIS_BUILD_DIR}/dev-debug.log"| sed 's/functionfile=//g' echo "" echo "================================="