Browse Source
missing quote corrected var removed file download as no longer required Base Defense Glibc changed maxplayers to default of 3pull/1986/head
5 changed files with 122 additions and 201 deletions
@ -1,199 +0,0 @@ |
|||
#!/bin/bash |
|||
# Project: Game Server Managers - LinuxGSM |
|||
# Author: Daniel Gibbs |
|||
# License: MIT License, Copyright (c) 2017 Daniel Gibbs |
|||
# Purpose: Base Defense | Server Management Script |
|||
# Contributors: https://github.com/GameServerManagers/LinuxGSM/graphs/contributors |
|||
# Documentation: https://github.com/GameServerManagers/LinuxGSM/wiki |
|||
# Website: https://gameservermanagers.com |
|||
|
|||
# Debugging |
|||
if [ -f ".dev-debug" ]; then |
|||
exec 5>dev-debug.log |
|||
BASH_XTRACEFD="5" |
|||
set -x |
|||
fi |
|||
|
|||
version="170219" |
|||
|
|||
########################## |
|||
######## Settings ######## |
|||
########################## |
|||
|
|||
#### Server Settings #### |
|||
|
|||
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters |
|||
defaultmap="pve_tomb" |
|||
maxplayers="16" |
|||
port="27015" |
|||
clientport="27005" |
|||
ip="0.0.0.0" |
|||
|
|||
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters |
|||
fn_parms(){ |
|||
parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" |
|||
} |
|||
|
|||
#### LinuxGSM Settings #### |
|||
|
|||
## Notification Alerts |
|||
# (on|off) |
|||
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email |
|||
emailalert="off" |
|||
email="[email protected]" |
|||
emailfrom="" |
|||
|
|||
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet |
|||
pushbulletalert="off" |
|||
pushbullettoken="accesstoken" |
|||
channeltag="" |
|||
|
|||
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update |
|||
updateonstart="off" |
|||
|
|||
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup |
|||
maxbackups="4" |
|||
maxbackupdays="30" |
|||
stoponbackup="on" |
|||
|
|||
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging |
|||
consolelogging="on" |
|||
logdays="7" |
|||
|
|||
#### LinuxGSM Advanced Settings #### |
|||
|
|||
## SteamCMD Settings |
|||
# Server appid |
|||
appid="90" |
|||
# 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 |
|||
# from a different repo and/or branch. |
|||
githubuser="GameServerManagers" |
|||
githubrepo="LinuxGSM" |
|||
githubbranch="master" |
|||
|
|||
## LinuxGSM Server Details |
|||
# Do not edit |
|||
gamename="Base Defense" |
|||
engine="goldsource" |
|||
|
|||
## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers |
|||
servicename="bdef_server" |
|||
|
|||
#### Directories #### |
|||
# Edit with care |
|||
|
|||
## Work Directories |
|||
rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" |
|||
selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" |
|||
lockselfname=".${servicename}.lock" |
|||
lgsmdir="${rootdir}/lgsm" |
|||
functionsdir="${lgsmdir}/functions" |
|||
libdir="${lgsmdir}/lib" |
|||
tmpdir="${lgsmdir}/tmp" |
|||
filesdir="${rootdir}/serverfiles" |
|||
|
|||
## Server Specific Directories |
|||
systemdir="${filesdir}/bdef" |
|||
executabledir="${filesdir}" |
|||
executable="./hlds_run" |
|||
servercfg="${servicename}.cfg" |
|||
servercfgdefault="server.cfg" |
|||
servercfgdir="${systemdir}" |
|||
servercfgfullpath="${servercfgdir}/${servercfg}" |
|||
|
|||
## Backup Directory |
|||
backupdir="${rootdir}/backups" |
|||
|
|||
## Logging Directories |
|||
gamelogdir="${systemdir}/logs" |
|||
scriptlogdir="${rootdir}/log/script" |
|||
consolelogdir="${rootdir}/log/console" |
|||
scriptlog="${scriptlogdir}/${servicename}-script.log" |
|||
consolelog="${consolelogdir}/${servicename}-console.log" |
|||
emaillog="${scriptlogdir}/${servicename}-email.log" |
|||
|
|||
## Logs Naming |
|||
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 ##### |
|||
######################## |
|||
|
|||
# Fetches core_dl for file downloads |
|||
fn_fetch_core_dl(){ |
|||
github_file_url_dir="lgsm/functions" |
|||
github_file_url_name="${functionfile}" |
|||
filedir="${functionsdir}" |
|||
filename="${github_file_url_name}" |
|||
githuburl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}" |
|||
# If the file is missing, then download |
|||
if [ ! -f "${filedir}/${filename}" ]; then |
|||
if [ ! -d "${filedir}" ]; then |
|||
mkdir -p "${filedir}" |
|||
fi |
|||
echo -e " fetching ${filename}...\c" |
|||
# Check curl exists and use available path |
|||
curlpaths="$(command -v curl 2>/dev/null) $(which curl >/dev/null 2>&1) /usr/bin/curl /bin/curl /usr/sbin/curl /sbin/curl)" |
|||
for curlcmd in ${curlpaths} |
|||
do |
|||
if [ -x "${curlcmd}" ]; then |
|||
break |
|||
fi |
|||
done |
|||
# If curl exists download file |
|||
if [ "$(basename ${curlcmd})" == "curl" ]; then |
|||
curlfetch=$(${curlcmd} -s --fail -o "${filedir}/${filename}" "${githuburl}" 2>&1) |
|||
if [ $? -ne 0 ]; then |
|||
echo -e "\e[0;31mFAIL\e[0m\n" |
|||
echo "${curlfetch}" |
|||
echo -e "${githuburl}\n" |
|||
exit 1 |
|||
else |
|||
echo -e "\e[0;32mOK\e[0m" |
|||
fi |
|||
else |
|||
echo -e "\e[0;31mFAIL\e[0m\n" |
|||
echo "Curl is not installed!" |
|||
echo -e "" |
|||
exit 1 |
|||
fi |
|||
chmod +x "${filedir}/${filename}" |
|||
fi |
|||
source "${filedir}/${filename}" |
|||
} |
|||
|
|||
core_dl.sh(){ |
|||
# Functions are defined in core_functions.sh. |
|||
functionfile="${FUNCNAME}" |
|||
fn_fetch_core_dl |
|||
} |
|||
|
|||
core_functions.sh(){ |
|||
# Functions are defined in core_functions.sh. |
|||
functionfile="${FUNCNAME}" |
|||
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_functions.sh |
|||
getopt=$1 |
|||
core_getopt.sh |
@ -0,0 +1,118 @@ |
|||
################################## |
|||
######## Default Settings ######## |
|||
################################## |
|||
# DO NOT EDIT WILL BE OVERWRITTEN! |
|||
# Copy settings from here and use them in either |
|||
# common.cfg - applies settings to every instance |
|||
# [instance].cfg - applies settings to a specific instance |
|||
|
|||
#### Server Settings #### |
|||
|
|||
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters |
|||
ip="0.0.0.0" |
|||
port="27015" |
|||
clientport="27005" |
|||
defaultmap="pve_tomb" |
|||
maxplayers="3" |
|||
|
|||
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters |
|||
fn_parms(){ |
|||
parms="-game bdef -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" |
|||
} |
|||
|
|||
#### LinuxGSM Settings #### |
|||
|
|||
## Notification Alerts |
|||
# (on|off) |
|||
|
|||
# More info | https://github.com/GameServerManagers/LinuxGSM/wiki/Alerts#more-info |
|||
postalert="off" |
|||
postdays="7" |
|||
posttarget="https://hastebin.com" |
|||
|
|||
# Discord Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Discord |
|||
discordalert="off" |
|||
discordwebhook="webhook" |
|||
|
|||
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email |
|||
emailalert="off" |
|||
email="[email protected]" |
|||
emailfrom="" |
|||
|
|||
# IFTTT Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/IFTTT |
|||
iftttalert="off" |
|||
ifttttoken="accesstoken" |
|||
iftttevent="linuxgsm_alert" |
|||
|
|||
# Mailgun Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/mailgun |
|||
mailgunalert="off" |
|||
mailguntoken="accesstoken" |
|||
mailgundomain="example.com" |
|||
mailgunemailfrom="[email protected]" |
|||
mailgunemail="[email protected]" |
|||
|
|||
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet |
|||
pushbulletalert="off" |
|||
pushbullettoken="accesstoken" |
|||
channeltag="" |
|||
|
|||
# Pushover Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushover |
|||
pushoveralert="off" |
|||
pushovertoken="accesstoken" |
|||
|
|||
# Telegram Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Telegram |
|||
telegramalert="off" |
|||
telegramtoken="accesstoken" |
|||
telegramchatid="" |
|||
|
|||
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update |
|||
updateonstart="off" |
|||
|
|||
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup |
|||
maxbackups="4" |
|||
maxbackupdays="30" |
|||
stoponbackup="on" |
|||
|
|||
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging |
|||
consolelogging="on" |
|||
logdays="7" |
|||
|
|||
#### LinuxGSM Advanced Settings #### |
|||
|
|||
## SteamCMD Settings |
|||
# Server appid |
|||
appid="817300" |
|||
|
|||
## LinuxGSM Server Details |
|||
# Do not edit |
|||
gamename="Base Defense" |
|||
engine="goldsource" |
|||
|
|||
#### Directories #### |
|||
# Edit with care |
|||
|
|||
## Server Specific Directories |
|||
systemdir="${serverfiles}/bdef" |
|||
executabledir="${serverfiles}" |
|||
executable="./hlds_run" |
|||
servercfg="${servicename}.cfg" |
|||
servercfgdefault="server.cfg" |
|||
servercfgdir="${systemdir}" |
|||
servercfgfullpath="${servercfgdir}/${servercfg}" |
|||
|
|||
## Backup Directory |
|||
backupdir="${rootdir}/backups" |
|||
|
|||
## Logging Directories |
|||
logdir="${rootdir}/log" |
|||
gamelogdir="${systemdir}/logs" |
|||
lgsmlogdir="${logdir}/script" |
|||
consolelogdir="${logdir}/console" |
|||
lgsmlog="${lgsmlogdir}/${servicename}-script.log" |
|||
consolelog="${consolelogdir}/${servicename}-console.log" |
|||
alertlog="${lgsmlogdir}/${servicename}-alert.log" |
|||
postdetailslog="${lgsmlogdir}/${servicename}-postdetails.log" |
|||
|
|||
## Logs Naming |
|||
lgsmlogdate="${lgsmlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log" |
|||
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%H:%M:%S').log" |
|
Loading…
Reference in new issue