|
@ -1,63 +1,88 @@ |
|
|
#!/bin/bash |
|
|
#!/bin/bash |
|
|
# Project Cars |
|
|
# Project: Game Server Managers - LinuxGSM |
|
|
# Server Management Script |
|
|
|
|
|
# Author: Daniel Gibbs |
|
|
# Author: Daniel Gibbs |
|
|
|
|
|
# License: MIT License, Copyright (c) 2017 Daniel Gibbs |
|
|
|
|
|
# Purpose: Project Cars | Server Management Script |
|
|
|
|
|
# Contributors: https://github.com/GameServerManagers/LinuxGSM/graphs/contributors |
|
|
|
|
|
# Documentation: https://github.com/GameServerManagers/LinuxGSM/wiki |
|
|
# Website: https://gameservermanagers.com |
|
|
# Website: https://gameservermanagers.com |
|
|
|
|
|
|
|
|
|
|
|
# Debugging |
|
|
if [ -f ".dev-debug" ]; then |
|
|
if [ -f ".dev-debug" ]; then |
|
|
exec 5>dev-debug.log |
|
|
exec 5>dev-debug.log |
|
|
BASH_XTRACEFD="5" |
|
|
BASH_XTRACEFD="5" |
|
|
set -x |
|
|
set -x |
|
|
fi |
|
|
fi |
|
|
|
|
|
|
|
|
version="211016" |
|
|
version="170219" |
|
|
|
|
|
|
|
|
|
|
|
########################## |
|
|
|
|
|
######## Settings ######## |
|
|
|
|
|
########################## |
|
|
|
|
|
|
|
|
#### Variables #### |
|
|
#### Server Settings #### |
|
|
|
|
|
|
|
|
# Notification Alerts |
|
|
# Notification Alerts |
|
|
# (on|off) |
|
|
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters |
|
|
|
|
|
fn_parms(){ |
|
|
|
|
|
parms="--config ${servercfg}" |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# Email |
|
|
#### LinuxGSM Settings #### |
|
|
|
|
|
|
|
|
|
|
|
## Notification Alerts |
|
|
|
|
|
# (on|off) |
|
|
|
|
|
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email |
|
|
emailalert="off" |
|
|
emailalert="off" |
|
|
email="email@example.com" |
|
|
email="email@example.com" |
|
|
#emailfrom="email@example.com" |
|
|
emailfrom="" |
|
|
|
|
|
|
|
|
# Pushbullet |
|
|
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet |
|
|
# https://www.pushbullet.com/#settings |
|
|
|
|
|
pushbulletalert="off" |
|
|
pushbulletalert="off" |
|
|
pushbullettoken="accesstoken" |
|
|
pushbullettoken="accesstoken" |
|
|
|
|
|
channeltag="" |
|
|
|
|
|
|
|
|
# Steam login |
|
|
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update |
|
|
steamuser="anonymous" |
|
|
updateonstart="off" |
|
|
steampass="" |
|
|
|
|
|
|
|
|
|
|
|
# Start Variables |
|
|
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup |
|
|
|
|
|
maxbackups="4" |
|
|
|
|
|
maxbackupdays="30" |
|
|
|
|
|
stoponbackup="on" |
|
|
|
|
|
|
|
|
fn_parms(){ |
|
|
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging |
|
|
parms=" --config ${servercfg}" |
|
|
consolelogging="on" |
|
|
} |
|
|
logdays="7" |
|
|
|
|
|
|
|
|
#### Advanced Variables #### |
|
|
#### LinuxGSM Advanced Settings #### |
|
|
|
|
|
|
|
|
# Github Branch Select |
|
|
## SteamCMD Settings |
|
|
|
|
|
# Server appid |
|
|
|
|
|
appid="332670" |
|
|
|
|
|
# Steam App Branch Select |
|
|
|
|
|
# Allows to opt into the various Steam app branches. Default branch is "". |
|
|
|
|
|
# Example: "-beta latest_experimental" |
|
|
|
|
|
branch="" |
|
|
|
|
|
|
|
|
|
|
|
## Github Branch Select |
|
|
# Allows for the use of different function files |
|
|
# Allows for the use of different function files |
|
|
# from a different repo and/or branch. |
|
|
# from a different repo and/or branch. |
|
|
githubuser="GameServerManagers" |
|
|
githubuser="GameServerManagers" |
|
|
githubrepo="LinuxGSM" |
|
|
githubrepo="LinuxGSM" |
|
|
githubbranch="projectcars" |
|
|
githubbranch="master" |
|
|
|
|
|
|
|
|
# Steam |
|
|
## LinuxGSM Server Details |
|
|
appid="332670" |
|
|
# Do not edit |
|
|
|
|
|
gamename="Project Cars" |
|
|
|
|
|
engine="madness" |
|
|
|
|
|
|
|
|
# Steam App Branch Select |
|
|
## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers |
|
|
# Allows to opt into the various Steam app branches. Default branch is "". |
|
|
servicename="pc-server" |
|
|
# Example: "-beta beta" |
|
|
|
|
|
branch="" |
|
|
|
|
|
|
|
|
|
|
|
# Server Details |
|
|
#### Directories #### |
|
|
servicename="projectcars-server" |
|
|
# Edit with care |
|
|
gamename="Project Cars" |
|
|
|
|
|
|
|
|
|
|
|
# Directories |
|
|
## Work Directories |
|
|
rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" |
|
|
rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" |
|
|
selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" |
|
|
selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" |
|
|
lockselfname=".${servicename}.lock" |
|
|
lockselfname=".${servicename}.lock" |
|
@ -66,6 +91,8 @@ functionsdir="${lgsmdir}/functions" |
|
|
libdir="${lgsmdir}/lib" |
|
|
libdir="${lgsmdir}/lib" |
|
|
tmpdir="${lgsmdir}/tmp" |
|
|
tmpdir="${lgsmdir}/tmp" |
|
|
filesdir="${rootdir}/serverfiles" |
|
|
filesdir="${rootdir}/serverfiles" |
|
|
|
|
|
|
|
|
|
|
|
## Server Specific Directories |
|
|
systemdir="${filesdir}" |
|
|
systemdir="${filesdir}" |
|
|
executabledir="${filesdir}" |
|
|
executabledir="${filesdir}" |
|
|
executable="./DedicatedServerCmd" |
|
|
executable="./DedicatedServerCmd" |
|
@ -73,24 +100,26 @@ servercfg="${servicename}.cfg" |
|
|
servercfgdefault="server.cfg" |
|
|
servercfgdefault="server.cfg" |
|
|
servercfgdir="${systemdir}" |
|
|
servercfgdir="${systemdir}" |
|
|
servercfgfullpath="${servercfgdir}/${servercfg}" |
|
|
servercfgfullpath="${servercfgdir}/${servercfg}" |
|
|
|
|
|
|
|
|
|
|
|
## Backup Directory |
|
|
backupdir="${rootdir}/backups" |
|
|
backupdir="${rootdir}/backups" |
|
|
|
|
|
|
|
|
# Logging |
|
|
## Logging Directories |
|
|
logdays="7" |
|
|
|
|
|
gamelogdir="${systemdir}/logs" |
|
|
gamelogdir="${systemdir}/logs" |
|
|
scriptlogdir="${rootdir}/log/script" |
|
|
scriptlogdir="${rootdir}/log/script" |
|
|
consolelogdir="${rootdir}/log/console" |
|
|
consolelogdir="${rootdir}/log/console" |
|
|
consolelogging="on" |
|
|
|
|
|
|
|
|
|
|
|
scriptlog="${scriptlogdir}/${servicename}-script.log" |
|
|
scriptlog="${scriptlogdir}/${servicename}-script.log" |
|
|
consolelog="${consolelogdir}/${servicename}-console.log" |
|
|
consolelog="${consolelogdir}/${servicename}-console.log" |
|
|
emaillog="${scriptlogdir}/${servicename}-email.log" |
|
|
emaillog="${scriptlogdir}/${servicename}-email.log" |
|
|
|
|
|
|
|
|
scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log" |
|
|
## Logs Naming |
|
|
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log" |
|
|
scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log" |
|
|
|
|
|
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log" |
|
|
|
|
|
|
|
|
##### Script ##### |
|
|
######################## |
|
|
# Do not edit |
|
|
######## Script ######## |
|
|
|
|
|
###### Do not edit ##### |
|
|
|
|
|
######################## |
|
|
|
|
|
|
|
|
# Fetches core_dl for file downloads |
|
|
# Fetches core_dl for file downloads |
|
|
fn_fetch_core_dl(){ |
|
|
fn_fetch_core_dl(){ |
|
@ -147,8 +176,18 @@ functionfile="${FUNCNAME}" |
|
|
fn_fetch_core_dl |
|
|
fn_fetch_core_dl |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
# Prevent from running this script as root. |
|
|
|
|
|
if [ "$(whoami)" = "root" ]; then |
|
|
|
|
|
if [ ! -f "${functionsdir}/core_functions.sh" ]||[ ! -f "${functionsdir}/check_root.sh" ]||[ ! -f "${functionsdir}/core_messages.sh" ]||[ ! -f "${functionsdir}/core_exit.sh" ]; then |
|
|
|
|
|
echo "[ FAIL ] Do NOT run this script as root!" |
|
|
|
|
|
exit 1 |
|
|
|
|
|
else |
|
|
|
|
|
core_functions.sh |
|
|
|
|
|
check_root.sh |
|
|
|
|
|
fi |
|
|
|
|
|
fi |
|
|
|
|
|
|
|
|
core_dl.sh |
|
|
core_dl.sh |
|
|
core_functions.sh |
|
|
core_functions.sh |
|
|
|
|
|
|
|
|
getopt=$1 |
|
|
getopt=$1 |
|
|
core_getopt.sh |
|
|
core_getopt.sh |