|
@@ -1,9 +1,9 @@
|
|
|
#!/bin/bash
|
|
#!/bin/bash
|
|
|
-# Just Cause 2
|
|
|
|
|
|
|
+# TravisCI Tests
|
|
|
# Server Management Script
|
|
# Server Management Script
|
|
|
# Author: Daniel Gibbs
|
|
# Author: Daniel Gibbs
|
|
|
# Website: http://gameservermanagers.com
|
|
# Website: http://gameservermanagers.com
|
|
|
-version="150715"
|
|
|
|
|
|
|
+version="071115"
|
|
|
|
|
|
|
|
#### Variables ####
|
|
#### Variables ####
|
|
|
|
|
|
|
@@ -34,8 +34,7 @@ gamename="Just Cause 2"
|
|
|
engine="avalanche"
|
|
engine="avalanche"
|
|
|
|
|
|
|
|
# Directories
|
|
# Directories
|
|
|
-rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/jc2server"
|
|
|
|
|
-mkdir "${rootdir}"
|
|
|
|
|
|
|
+rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
selfname="$(basename $0)"
|
|
selfname="$(basename $0)"
|
|
|
lockselfname=".${servicename}.lock"
|
|
lockselfname=".${servicename}.lock"
|
|
|
filesdir="${rootdir}/serverfiles"
|
|
filesdir="${rootdir}/serverfiles"
|
|
@@ -88,28 +87,36 @@ fn_runfunction
|
|
|
|
|
|
|
|
fn_functions
|
|
fn_functions
|
|
|
|
|
|
|
|
-getopt=$1
|
|
|
|
|
-
|
|
|
|
|
-fn_currentstatus(){
|
|
|
|
|
|
|
+fn_currentstatus_tmux(){
|
|
|
pid=$(tmux list-sessions 2>&1 | awk '{print $1}' | grep -Ec "^${servicename}:")
|
|
pid=$(tmux list-sessions 2>&1 | awk '{print $1}' | grep -Ec "^${servicename}:")
|
|
|
-if [ "${pid}" == "0" ]; then
|
|
|
|
|
- currentstatus="OFFLINE"
|
|
|
|
|
|
|
+if [ "${pid}" != "0" ]; then
|
|
|
|
|
+ currentstatus="ONLINE"
|
|
|
else
|
|
else
|
|
|
|
|
+ currentstatus="OFFLINE"
|
|
|
|
|
+fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+fn_currentstatus_ts3(){
|
|
|
|
|
+ts3status=$(${executable} status servercfgfullpathfile=${servercfgfullpath})
|
|
|
|
|
+
|
|
|
|
|
+if [ "${ts3status}" == "Server is running" ]; then
|
|
|
currentstatus="ONLINE"
|
|
currentstatus="ONLINE"
|
|
|
|
|
+else
|
|
|
|
|
+ currentstatus="OFFLINE"
|
|
|
fi
|
|
fi
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
fn_setstatus(){
|
|
fn_setstatus(){
|
|
|
- fn_currentstatus
|
|
|
|
|
-
|
|
|
|
|
|
|
+ fn_currentstatus_tmux
|
|
|
echo""
|
|
echo""
|
|
|
echo "Required status: ${requiredstatus}"
|
|
echo "Required status: ${requiredstatus}"
|
|
|
counter=0
|
|
counter=0
|
|
|
|
|
+ echo "Current status: ${currentstatus}"
|
|
|
while [ "${requiredstatus}" != "${currentstatus}" ]; do
|
|
while [ "${requiredstatus}" != "${currentstatus}" ]; do
|
|
|
counter=$((counter+1))
|
|
counter=$((counter+1))
|
|
|
- fn_currentstatus
|
|
|
|
|
-
|
|
|
|
|
- echo -ne "Current status: ${currentstatus}\\r"
|
|
|
|
|
|
|
+ fn_currentstatus_tmux
|
|
|
|
|
+ echo -ne "New status: ${currentstatus}\\r"
|
|
|
|
|
+
|
|
|
if [ "${requiredstatus}" == "ONLINE" ]; then
|
|
if [ "${requiredstatus}" == "ONLINE" ]; then
|
|
|
(fn_start > /dev/null 2>&1)
|
|
(fn_start > /dev/null 2>&1)
|
|
|
else
|
|
else
|
|
@@ -120,10 +127,10 @@ fn_setstatus(){
|
|
|
echo "Current status: ${currentstatus}"
|
|
echo "Current status: ${currentstatus}"
|
|
|
echo ""
|
|
echo ""
|
|
|
echo "Unable to start or stop server."
|
|
echo "Unable to start or stop server."
|
|
|
- exit
|
|
|
|
|
|
|
+ exit 1
|
|
|
fi
|
|
fi
|
|
|
done
|
|
done
|
|
|
- echo -ne "Current status: ${currentstatus}\\r"
|
|
|
|
|
|
|
+ echo -ne "New status: ${currentstatus}\\r"
|
|
|
echo -e "\n"
|
|
echo -e "\n"
|
|
|
echo "Test starting:"
|
|
echo "Test starting:"
|
|
|
echo ""
|
|
echo ""
|
|
@@ -139,25 +146,35 @@ echo "================================="
|
|
|
echo ""
|
|
echo ""
|
|
|
sleep 1
|
|
sleep 1
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
-echo "Generic Server Tests"
|
|
|
|
|
|
|
+echo "Server Tests"
|
|
|
echo "Using: ${gamename}"
|
|
echo "Using: ${gamename}"
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo ""
|
|
echo ""
|
|
|
sleep 1
|
|
sleep 1
|
|
|
-mkdir ${rootfdir}
|
|
|
|
|
|
|
+mkdir ${rootdir}
|
|
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
|
echo "1.0 - start - no files"
|
|
echo "1.0 - start - no files"
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo "Description:"
|
|
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)
|
|
(fn_start)
|
|
|
echo ""
|
|
echo ""
|
|
|
echo "Test complete!"
|
|
echo "Test complete!"
|
|
|
sleep 1
|
|
sleep 1
|
|
|
echo ""
|
|
echo ""
|
|
|
|
|
+echo "1.1 - getopt"
|
|
|
|
|
+echo "================================="
|
|
|
|
|
+echo "Description:"
|
|
|
|
|
+echo "displaying options messages."
|
|
|
|
|
+echo ""
|
|
|
|
|
+(fn_getopt)
|
|
|
|
|
+echo ""
|
|
|
|
|
+echo "Test complete!"
|
|
|
|
|
+sleep 1
|
|
|
|
|
+echo ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -165,8 +182,6 @@ echo "2.0 - install"
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo "Description:"
|
|
echo "Description:"
|
|
|
echo "install ${gamename} server."
|
|
echo "install ${gamename} server."
|
|
|
-requiredstatus="OFFLINE"
|
|
|
|
|
-fn_setstatus
|
|
|
|
|
fn_autoinstall
|
|
fn_autoinstall
|
|
|
echo ""
|
|
echo ""
|
|
|
echo "Test complete!"
|
|
echo "Test complete!"
|
|
@@ -201,7 +216,7 @@ echo "3.3 - start - updateonstart"
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo "Description:"
|
|
echo "Description:"
|
|
|
echo "will update server on start."
|
|
echo "will update server on start."
|
|
|
-requiredstatus="ONLINE"
|
|
|
|
|
|
|
+requiredstatus="OFFLINE"
|
|
|
fn_setstatus
|
|
fn_setstatus
|
|
|
(
|
|
(
|
|
|
updateonstart="on"
|
|
updateonstart="on"
|
|
@@ -411,7 +426,7 @@ echo ""
|
|
|
echo "6.0 - details"
|
|
echo "6.0 - details"
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo "Description:"
|
|
echo "Description:"
|
|
|
-echo "gsquery.py will fail to query port."
|
|
|
|
|
|
|
+echo "display details."
|
|
|
requiredstatus="ONLINE"
|
|
requiredstatus="ONLINE"
|
|
|
fn_setstatus
|
|
fn_setstatus
|
|
|
fn_details
|
|
fn_details
|
|
@@ -421,65 +436,14 @@ sleep 1
|
|
|
echo ""
|
|
echo ""
|
|
|
|
|
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
-echo "Generic Server Tests - Complete!"
|
|
|
|
|
|
|
+echo "Server Tests - Complete!"
|
|
|
echo "Using: ${gamename}"
|
|
echo "Using: ${gamename}"
|
|
|
echo "================================="
|
|
echo "================================="
|
|
|
echo ""
|
|
echo ""
|
|
|
|
|
+requiredstatus="OFFLINE"
|
|
|
|
|
+fn_setstatus
|
|
|
sleep 1
|
|
sleep 1
|
|
|
fn_printinfo "Tidying up directories."
|
|
fn_printinfo "Tidying up directories."
|
|
|
sleep 1
|
|
sleep 1
|
|
|
-rm -rfv ${rootdir}
|
|
|
|
|
|
|
+rm -rfv ${serverfiles}
|
|
|
echo "END"
|
|
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
|
|
|