|
|
@ -3,7 +3,7 @@ |
|
|
|
# Server Management Script |
|
|
|
# Author: Daniel Gibbs |
|
|
|
# Website: http://gameservermanagers.com |
|
|
|
version="291015" |
|
|
|
version="121215" |
|
|
|
|
|
|
|
#### Variables #### |
|
|
|
|
|
|
@ -35,6 +35,12 @@ sourcetvport="27020" |
|
|
|
clientport="27005" |
|
|
|
ip="0.0.0.0" |
|
|
|
updateonstart="off" |
|
|
|
|
|
|
|
# Required: Game Server Login Token |
|
|
|
# GSLT is required for running a public server. |
|
|
|
# More info: http://gameservermanagers.com/gslt |
|
|
|
gslt="" |
|
|
|
|
|
|
|
# Optional: Workshop Parameters |
|
|
|
# https://developer.valvesoftware.com/wiki/CSGO_Workshop_For_Server_Operators |
|
|
|
# To get an authkey visit - http://steamcommunity.com/dev/apikey |
|
|
@ -44,11 +50,18 @@ updateonstart="off" |
|
|
|
|
|
|
|
# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server |
|
|
|
fn_parms(){ |
|
|
|
parms="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_mode ${gamemode} +game_type ${gametype} +host_workshop_collection ${ws_collection_id} +workshop_start_map ${ws_start_map} -authkey ${authkey}" |
|
|
|
parms="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_mode ${gamemode} +game_type ${gametype} +host_workshop_collection ${ws_collection_id} +workshop_start_map ${ws_start_map} -authkey ${authkey}" |
|
|
|
} |
|
|
|
|
|
|
|
#### Advanced Variables #### |
|
|
|
|
|
|
|
# Github Branch Select |
|
|
|
# Allows for the use of different function files |
|
|
|
# from a different repo and/or branch. |
|
|
|
githubuser="dgibbs64" |
|
|
|
githubrepo="linuxgsm" |
|
|
|
githubbranch="master" |
|
|
|
|
|
|
|
# Steam |
|
|
|
appid="740" |
|
|
|
|
|
|
@ -58,8 +71,8 @@ gamename="Counter Strike: Global Offensive" |
|
|
|
engine="source" |
|
|
|
|
|
|
|
# Directories |
|
|
|
rootdir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
|
|
|
selfname="$(basename $0)" |
|
|
|
rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" |
|
|
|
selfname=$(basename $(readlink -f "${BASH_SOURCE[0]}")) |
|
|
|
lockselfname=".${servicename}.lock" |
|
|
|
filesdir="${rootdir}/serverfiles" |
|
|
|
systemdir="${filesdir}/csgo" |
|
|
@ -87,20 +100,45 @@ consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M- |
|
|
|
##### 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 |
|
|
|
fn_getgithubfile(){ |
|
|
|
filename=$1 |
|
|
|
exec=$2 |
|
|
|
fileurl=${3:-$filename} |
|
|
|
filepath="${rootdir}/${filename}" |
|
|
|
filedir=$(dirname "${filepath}") |
|
|
|
# If the function file is missing, then download |
|
|
|
if [ ! -f "${filepath}" ]; then |
|
|
|
if [ ! -d "${filedir}" ]; then |
|
|
|
mkdir "${filedir}" |
|
|
|
fi |
|
|
|
githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${fileurl}" |
|
|
|
echo -e " fetching ${filename}...\c" |
|
|
|
if [ "$(command -v curl)" ]||[ "$(which curl >/dev/null 2>&1)" ]||[ -f "/usr/bin/curl" ]||[ -f "/bin/curl" ]; then |
|
|
|
echo -e "\e[0;31mFAIL\e[0m\n" |
|
|
|
echo "Curl is not installed!" |
|
|
|
echo -e "" |
|
|
|
exit |
|
|
|
fi |
|
|
|
CURL=$(curl --fail -o "${filepath}" "${githuburl}" 2>&1) |
|
|
|
if [ $? -ne 0 ]; then |
|
|
|
echo -e "\e[0;31mFAIL\e[0m\n" |
|
|
|
echo " $CURL"|grep "curl:" |
|
|
|
echo -e "${githuburl}\n" |
|
|
|
exit |
|
|
|
else |
|
|
|
echo -e "\e[0;32mOK\e[0m" |
|
|
|
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}" |
|
|
|
if [ "${exec}" ]; then |
|
|
|
chmod +x "${filepath}" |
|
|
|
fi |
|
|
|
fi |
|
|
|
if [ "${exec}" ]; then |
|
|
|
source "${filepath}" |
|
|
|
fi |
|
|
|
source "${rootdir}/functions/${functionfile}" |
|
|
|
} |
|
|
|
|
|
|
|
fn_runfunction(){ |
|
|
|
fn_getgithubfile "functions/${functionfile}" 1 |
|
|
|
} |
|
|
|
|
|
|
|
fn_functions(){ |
|
|
|