|
@@ -0,0 +1,172 @@
|
|
|
|
|
+##################################
|
|
|
|
|
+######## 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 Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
|
|
|
|
|
+fn_parms(){
|
|
|
|
|
+parms="+hostServer 1 +dedicated 1"
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+#### LinuxGSM Settings ####
|
|
|
|
|
+
|
|
|
|
|
+## Notification Alerts
|
|
|
|
|
+# (on|off)
|
|
|
|
|
+# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
|
|
|
|
|
+emailalert="off"
|
|
|
|
|
+email="email@example.com"
|
|
|
|
|
+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"
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+#### Advanced Variables ####
|
|
|
|
|
+
|
|
|
|
|
+# 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="Battlefield: 1942"
|
|
|
|
|
+engine="refractor"
|
|
|
|
|
+
|
|
|
|
|
+## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
|
|
|
|
|
+servicename="bf1942-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}"
|
|
|
|
|
+executabledir="${systemdir}"
|
|
|
|
|
+executable="./start.sh"
|
|
|
|
|
+servercfg="serversettings.con"
|
|
|
|
|
+servercfgdefault="serversettings.con"
|
|
|
|
|
+servercfgdir="${systemdir}/mods/bf1942/settings"
|
|
|
|
|
+servercfgfullpath="${servercfgdir}/${servercfg}"
|
|
|
|
|
+
|
|
|
|
|
+## Backup Directory
|
|
|
|
|
+backupdir="${rootdir}/backups"
|
|
|
|
|
+
|
|
|
|
|
+## Logging Directories
|
|
|
|
|
+logdir="${rootdir}/log"
|
|
|
|
|
+gamelogdir="${filesdir}/Logs"
|
|
|
|
|
+lgsmlogdir="${logdir}/script"
|
|
|
|
|
+consolelogdir="${logdir}/console"
|
|
|
|
|
+lgsmlog="${lgsmlogdir}/${servicename}-script.log"
|
|
|
|
|
+consolelog="${consolelogdir}/${servicename}-console.log"
|
|
|
|
|
+emaillog="${lgsmlogdir}/${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
|