From dd5ac5577afdc198a69ac2a2e0988601ec46a7f5 Mon Sep 17 00:00:00 2001 From: Daniel Gibbs Date: Sun, 1 Nov 2015 13:26:33 +0000 Subject: [PATCH] Further changes --- .travis.yml | 2 +- test.sh | 484 -------------------------- tests/{test.sh => tests_jc2server.sh} | 88 ++--- 3 files changed, 23 insertions(+), 551 deletions(-) delete mode 100644 test.sh rename tests/{test.sh => tests_jc2server.sh} (85%) diff --git a/.travis.yml b/.travis.yml index 4e39e2473..3594768d1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,4 +22,4 @@ addons: script: - - bash tests/test.sh \ No newline at end of file + - bash tests/tests_jc2server.sh \ No newline at end of file diff --git a/test.sh b/test.sh deleted file mode 100644 index 839b7538c..000000000 --- a/test.sh +++ /dev/null @@ -1,484 +0,0 @@ -#!/bin/bash -# Just Cause 2 -# Server Management Script -# Author: Daniel Gibbs -# Website: http://gameservermanagers.com -version="150715" - -#### Variables #### - -# Notification Email -# (on|off) -emailnotification="on" -email="me@danielgibbs.co.uk" - -# Steam login -steamuser="anonymous" -steampass="" - -# Start Variables -updateonstart="off" - -fn_parms(){ -parms="" -} - -#### Advanced Variables #### - -# Steam -appid="261140" - -# Server Details -servicename="jc2-server" -gamename="Just Cause 2" -engine="avalanche" - -# Directories -rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/jc2server" -selfname="$(basename $0)" -lockselfname=".${servicename}.lock" -filesdir="${rootdir}/serverfiles" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./Jcmp-Server" -servercfg="config.lua" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -servercfgdefault="${servercfgdir}/default_config.lua" -backupdir="${rootdir}/backups" - -# Logging -logdays="7" -#gamelogdir="" # No server logs available -scriptlogdir="${rootdir}/log/script" -consolelogdir="${rootdir}/log/console" - -scriptlog="${scriptlogdir}/${servicename}-script.log" -consolelog="${consolelogdir}/${servicename}-console.log" -emaillog="${scriptlogdir}/${servicename}-email.log" - -scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" -consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log" - -##### Script ##### -# Do not edit - -fn_runfunction(){ -# Functions are downloaded and run with this function -if [ ! -f "${rootdir}/functions/${functionfile}" ]; then - cd "${rootdir}" - if [ ! -d "functions" ]; then - mkdir functions - fi - cd functions - echo -e " loading ${functionfile}...\c" - wget -N /dev/null https://raw.githubusercontent.com/dgibbs64/linuxgsm/master/functions/${functionfile} 2>&1 | grep -F HTTP | cut -c45- - chmod +x "${functionfile}" - cd "${rootdir}" -fi -source "${rootdir}/functions/${functionfile}" -} - -fn_functions(){ -# Functions are defined in fn_functions. -functionfile="${FUNCNAME}" -fn_runfunction -} - -fn_functions - -getopt=$1 - -fn_currentstatus(){ -pid=$(tmux list-sessions 2>&1 | awk '{print $1}' | grep -Ec "^${servicename}:") -if [ "${pid}" == "0" ]; then - currentstatus="OFFLINE" -else - currentstatus="ONLINE" -fi -} - -fn_setstatus(){ - fn_currentstatus - - echo"" - echo "Required status: ${requiredstatus}" - counter=0 - while [ "${requiredstatus}" != "${currentstatus}" ]; do - counter=$((counter+1)) - fn_currentstatus - - echo -ne "Current status: ${currentstatus}\\r" - if [ "${requiredstatus}" == "ONLINE" ]; then - (fn_start > /dev/null 2>&1) - else - (fn_stop > /dev/null 2>&1) - fi - if [ "${counter}" -gt "5" ]; then - currentstatus="FAIL" - echo "Current status: ${currentstatus}" - echo "" - echo "Unable to start or stop server." - exit - fi - done - echo -ne "Current status: ${currentstatus}\\r" - echo -e "\n" - echo "Test starting:" - echo "" - sleep 0.5 -} - -echo "=================================" -echo "TravisCI Tests" -echo "Linux Game Server Manager" -echo "by Daniel Gibbs" -echo "http://gameservermanagers.com" -echo "=================================" -echo "" -sleep 1 -echo "=================================" -echo "Generic Server Tests" -echo "Using: ${gamename}" -echo "=================================" -echo "" -sleep 1 -mkdir ${rootfdir} - - -echo "1.0 - start - no files" -echo "=================================" -echo "Description:" -echo "Test script reaction to missing server files." -requiredstatus="OFFLINE" -fn_setstatus -(fn_start) -echo "" -echo "Test complete!" -sleep 1 -echo "" - - - -echo "2.0 - install" -echo "=================================" -echo "Description:" -echo "install ${gamename} server." -requiredstatus="OFFLINE" -fn_setstatus -fn_autoinstall -echo "" -echo "Test complete!" -sleep 1 -echo "" - - - -echo "3.1 - start" -echo "=================================" -echo "Description:" -echo "start ${gamename} server." -requiredstatus="OFFLINE" -fn_setstatus -fn_start -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "3.2 - start - online" -echo "=================================" -echo "Description:" -echo "start ${gamename} server while already running." -requiredstatus="ONLINE" -fn_setstatus -(fn_start) -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "3.3 - start - updateonstart" -echo "=================================" -echo "Description:" -echo "will update server on start." -requiredstatus="ONLINE" -fn_setstatus -( - updateonstart="on" - fn_start -) -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "3.4 - stop" -echo "=================================" -echo "Description:" -echo "stop ${gamename} server." -requiredstatus="ONLINE" -fn_setstatus -fn_stop -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "3.5 - stop - offline" -echo "=================================" -echo "Description:" -echo "stop ${gamename} server while already stopped." -requiredstatus="OFFLINE" -fn_setstatus -(fn_stop) -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "3.6 - restart" -echo "=================================" -echo "Description:" -echo "restart ${gamename}." -requiredstatus="ONLINE" -fn_setstatus -fn_restart -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "3.7 - restart - offline" -echo "=================================" -echo "Description:" -echo "restart ${gamename} while already stopped." -requiredstatus="OFFLINE" -fn_setstatus -fn_restart -echo "" -echo "Test complete!" -sleep 1 -echo "" - - - -echo "4.1 - update" -echo "=================================" -echo "Description:" -echo "check for updates." -requiredstatus="OFFLINE" -fn_setstatus -fn_update_check -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.2 - update - change buildid" -echo "=================================" -echo "Description:" -echo "change the buildid tricking SteamCMD to update." -requiredstatus="OFFLINE" -fn_setstatus -fn_printinfonl "changed buildid to 0." -sed -i 's/[0-9]\+/0/' ${filesdir}/steamapps/appmanifest_${appid}.acf -fn_update_check -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.3 - update - change buildid - online" -echo "=================================" -echo "Description:" -echo "change the buildid tricking SteamCMD to update server while already running." -requiredstatus="ONLINE" -fn_setstatus -fn_printinfonl "changed buildid to 0." -sed -i 's/[0-9]\+/0/' ${filesdir}/steamapps/appmanifest_${appid}.acf -fn_update_check -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.4 - update - remove appmanifest file" -echo "=================================" -echo "Description:" -echo "removing appmanifest file will cause script to repair." -requiredstatus="OFFLINE" -fn_setstatus -fn_printinfonl "removed appmanifest_${appid}.acf." -rm --verbose "${filesdir}/steamapps/appmanifest_${appid}.acf" -fn_update_check -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.5 - force-update" -echo "=================================" -echo "Description:" -echo "force-update bypassing update check." -requiredstatus="OFFLINE" -fn_setstatus -fn_update_check -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.6 - force-update - online" -echo "=================================" -echo "Description:" -echo "force-update bypassing update check server while already running." -requiredstatus="ONLINE" -fn_setstatus -fn_update_check -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.7 - validate" -echo "=================================" -echo "Description:" -echo "validate server files." -requiredstatus="OFFLINE" -fn_setstatus -fn_validate -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "4.8 - validate - online" -echo "=================================" -echo "Description:" -echo "validate server files while server while already running." -requiredstatus="ONLINE" -fn_setstatus -fn_validate -echo "" -echo "Test complete!" -sleep 1 -echo "" - - - -echo "5.1 - monitor - online" -echo "=================================" -echo "Description:" -echo "run monitor server while already running." -requiredstatus="ONLINE" -fn_setstatus -(fn_monitor) -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "5.2 - monitor - offline - no lockfile" -echo "=================================" -echo "Description:" -echo "run monitor while server is offline with no lockfile." -requiredstatus="OFFLINE" -fn_setstatus -(fn_monitor) -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "5.3 - monitor - offline - with lockfile" -echo "=================================" -echo "Description:" -echo "run monitor while server is offline with no lockfile." -requiredstatus="OFFLINE" -fn_setstatus -fn_printinfonl "creating lockfile." -date > "${rootdir}/${lockselfname}" -(fn_monitor) -echo "" -echo "Test complete!" -sleep 1 -echo "" -echo "5.4 - monitor - gsquery.py failure" -echo "=================================" -echo "Description:" -echo "gsquery.py will fail to query port." -requiredstatus="ONLINE" -fn_setstatus -sed -i 's/[0-9]\+/0/' "${servercfgfullpath}" -fn_monitor -echo "" -fn_printinfonl "Reseting ${servercfg}." -fn_install_config -echo "" -echo "Test complete!" -sleep 1 -echo "" - - - -echo "6.0 - details" -echo "=================================" -echo "Description:" -echo "gsquery.py will fail to query port." -requiredstatus="ONLINE" -fn_setstatus -fn_details -echo "" -echo "Test complete!" -sleep 1 -echo "" - -echo "=================================" -echo "Generic Server Tests - Complete!" -echo "Using: ${gamename}" -echo "=================================" -echo "" -sleep 1 -fn_printinfo "Tidying up directories." -sleep 1 -rm -rfv ${rootdir} -echo "END" - -#!/bin/bash -# Teamspeak 3 -# Server Management Script -# Author: Daniel Gibbs -# Website: http://gameservermanagers.com -version="040715" - -#### Variables #### - -# Notification Email -# (on|off) -emailnotification="on" -email="me@Danielgibbs.co.uk" - -# Start Variables -updateonstart="off" - -# Server Details -gamename="Teamspeak 3" -servername="Teamspeak 3 Server" -servicename="ts3-server" - -# Directories -rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/ts3server" -selfname="$(basename $0)" -lockselfname=".${servicename}.lock" -filesdir="${rootdir}/serverfiles" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./ts3server_startscript.sh" -servercfg="${servicename}.ini" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -backupdir="${rootdir}/backups" - -# Logging -logdays="7" -gamelogdir="${filesdir}/logs" -scriptlogdir="${rootdir}/log/script" - -scriptlog="${scriptlogdir}/${servicename}-script.log" -emaillog="${scriptlogdir}/${servicename}-email.log" - -scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" - - -echo "=================================" -echo "Generic Server Tests" -echo "Using: ${gamename}" -echo "=================================" -echo "" -sleep 1 \ No newline at end of file diff --git a/tests/test.sh b/tests/tests_jc2server.sh similarity index 85% rename from tests/test.sh rename to tests/tests_jc2server.sh index cbe7fdbaf..ae3f0498e 100644 --- a/tests/test.sh +++ b/tests/tests_jc2server.sh @@ -1,9 +1,10 @@ #!/bin/bash -# Just Cause 2 +# TravisCI Tests # Server Management Script # Author: Daniel Gibbs # Website: http://gameservermanagers.com -version="150715" + +version="011115" #### Variables #### @@ -34,8 +35,7 @@ gamename="Just Cause 2" engine="avalanche" # Directories -rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/jc2server" -mkdir "${rootdir}" +rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" selfname="$(basename $0)" lockselfname=".${servicename}.lock" filesdir="${rootdir}/serverfiles" @@ -139,24 +139,34 @@ echo "=================================" echo "" sleep 1 echo "=================================" -echo "Generic Server Tests" +echo "Server Tests" echo "Using: ${gamename}" echo "=================================" echo "" sleep 1 + echo "1.0 - start - no files" echo "=================================" echo "Description:" -echo "Test script reaction to missing server files." -requiredstatus="OFFLINE" -fn_setstatus +echo "test script reaction to missing server files." +echo "" (fn_start) echo "" echo "Test complete!" sleep 1 echo "" +echo "1.1 - getopt" +echo "=================================" +echo "Description:" +echo "displaying options messages." +echo "" +(fn_getopt) +echo "" +echo "Test complete!" +sleep 1 +echo "" @@ -164,8 +174,6 @@ echo "2.0 - install" echo "=================================" echo "Description:" echo "install ${gamename} server." -requiredstatus="OFFLINE" -fn_setstatus fn_autoinstall echo "" echo "Test complete!" @@ -200,7 +208,7 @@ echo "3.3 - start - updateonstart" echo "=================================" echo "Description:" echo "will update server on start." -requiredstatus="ONLINE" +requiredstatus="OFFLINE" fn_setstatus ( updateonstart="on" @@ -410,7 +418,7 @@ echo "" echo "6.0 - details" echo "=================================" echo "Description:" -echo "gsquery.py will fail to query port." +echo "display details." requiredstatus="ONLINE" fn_setstatus fn_details @@ -420,65 +428,13 @@ sleep 1 echo "" echo "=================================" -echo "Generic Server Tests - Complete!" +echo "Server Tests - Complete!" echo "Using: ${gamename}" echo "=================================" echo "" sleep 1 fn_printinfo "Tidying up directories." sleep 1 -rm -rfv ${rootdir} +rm -rfv ${serverfiles} echo "END" -#!/bin/bash -# Teamspeak 3 -# Server Management Script -# Author: Daniel Gibbs -# Website: http://gameservermanagers.com -version="040715" - -#### Variables #### - -# Notification Email -# (on|off) -emailnotification="on" -email="me@Danielgibbs.co.uk" - -# Start Variables -updateonstart="off" - -# Server Details -gamename="Teamspeak 3" -servername="Teamspeak 3 Server" -servicename="ts3-server" - -# Directories -rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/ts3server" -selfname="$(basename $0)" -lockselfname=".${servicename}.lock" -filesdir="${rootdir}/serverfiles" -systemdir="${filesdir}" -executabledir="${filesdir}" -executable="./ts3server_startscript.sh" -servercfg="${servicename}.ini" -servercfgdir="${filesdir}" -servercfgfullpath="${servercfgdir}/${servercfg}" -backupdir="${rootdir}/backups" - -# Logging -logdays="7" -gamelogdir="${filesdir}/logs" -scriptlogdir="${rootdir}/log/script" - -scriptlog="${scriptlogdir}/${servicename}-script.log" -emaillog="${scriptlogdir}/${servicename}-email.log" - -scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" - - -echo "=================================" -echo "Generic Server Tests" -echo "Using: ${gamename}" -echo "=================================" -echo "" -sleep 1 \ No newline at end of file