|
|
@@ -0,0 +1,147 @@
|
|
|
+#!/bin/bash
|
|
|
+# Rust
|
|
|
+# Server Management Script
|
|
|
+# Author: Daniel Gibbs
|
|
|
+# Contributor: UltimateByte
|
|
|
+# Website: http://gameservermanagers.com
|
|
|
+if [ -f ".dev-debug" ]; then
|
|
|
+ exec 5>dev-debug.log
|
|
|
+ BASH_XTRACEFD="5"
|
|
|
+ set -x
|
|
|
+fi
|
|
|
+
|
|
|
+version="210215"
|
|
|
+
|
|
|
+#### Variables ####
|
|
|
+
|
|
|
+# Notification Email
|
|
|
+# (on|off)
|
|
|
+emailnotification="off"
|
|
|
+email="email@example.com"
|
|
|
+
|
|
|
+# Steam login (not required)
|
|
|
+steamuser="anonymous"
|
|
|
+steampass=""
|
|
|
+
|
|
|
+# Server settings
|
|
|
+servername="Hurtworld LGSM Server"
|
|
|
+ip="0.0.0.0"
|
|
|
+port="28015"
|
|
|
+queryport="28016"
|
|
|
+maxplayers="20"
|
|
|
+map="" #Optional rust_island_2013
|
|
|
+creativemode="0" #Free Build
|
|
|
+logfile="gamelog.txt"
|
|
|
+
|
|
|
+# Adding admins using STEAMID64
|
|
|
+# Example : addadmin 012345678901234567; addadmin 987654321098765432
|
|
|
+admins=""
|
|
|
+
|
|
|
+# Advanced
|
|
|
+# Rollback server state (remove after start command)
|
|
|
+loadsave=""
|
|
|
+# Use unstable 64 bit server executable (O/1)
|
|
|
+x64mode="0"
|
|
|
+
|
|
|
+# https://developer.valvesoftware.com/wiki/Rust_Dedicated_Server
|
|
|
+fn_parms(){
|
|
|
+parms="-batchmode -hostname ${servername} -map ${map} -queryport ${queryport} -maxplayers ${maxplayers} -datadir \"serverdata\""
|
|
|
+}
|
|
|
+
|
|
|
+#### 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="258550"
|
|
|
+
|
|
|
+# Server Details
|
|
|
+servicename="rust-server"
|
|
|
+gamename="Rust"
|
|
|
+engine="unity3d"
|
|
|
+
|
|
|
+# Directories
|
|
|
+rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
|
|
|
+selfname=$(basename $(readlink -f "${BASH_SOURCE[0]}"))
|
|
|
+lockselfname=".${servicename}.lock"
|
|
|
+filesdir="${rootdir}/serverfiles"
|
|
|
+systemdir="${filesdir}"
|
|
|
+executabledir="${filesdir}"
|
|
|
+executable="./RustDedicated"
|
|
|
+backupdir="${rootdir}/backups"
|
|
|
+
|
|
|
+# Logging
|
|
|
+logdays="7"
|
|
|
+gamelogdir="${rootdir}/log/server"
|
|
|
+scriptlogdir="${rootdir}/log/script"
|
|
|
+consolelogdir="${rootdir}/log/console"
|
|
|
+
|
|
|
+gamelog="${gamelogdir}/${servicename}-game.log"
|
|
|
+scriptlog="${scriptlogdir}/${servicename}-script.log"
|
|
|
+consolelog="${consolelogdir}/${servicename}-console.log"
|
|
|
+emaillog="${scriptlogdir}/${servicename}-email.log"
|
|
|
+
|
|
|
+scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%d-%m-%Y-%H-%M-%S').log"
|
|
|
+consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%d-%m-%Y-%H-%M-%S').log"
|
|
|
+
|
|
|
+##### Script #####
|
|
|
+# Do not edit
|
|
|
+
|
|
|
+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
|
|
|
+ :
|
|
|
+ else
|
|
|
+ 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
|
|
|
+ if [ "${exec}" ]; then
|
|
|
+ chmod +x "${filepath}"
|
|
|
+ fi
|
|
|
+fi
|
|
|
+if [ "${exec}" ]; then
|
|
|
+ source "${filepath}"
|
|
|
+fi
|
|
|
+}
|
|
|
+
|
|
|
+fn_runfunction(){
|
|
|
+ fn_getgithubfile "functions/${functionfile}" 1
|
|
|
+}
|
|
|
+
|
|
|
+core_functions.sh(){
|
|
|
+# Functions are defined in core_functions.sh.
|
|
|
+functionfile="${FUNCNAME}"
|
|
|
+fn_runfunction
|
|
|
+}
|
|
|
+
|
|
|
+core_functions.sh
|
|
|
+
|
|
|
+getopt=$1
|
|
|
+core_getopt.sh
|