8 changed files with 274 additions and 28 deletions
@ -0,0 +1,152 @@ |
|||
#!/bin/bash |
|||
# Hurtworld |
|||
# 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="191215" |
|||
|
|||
#### Variables #### |
|||
|
|||
# Notification Email |
|||
# (on|off) |
|||
emailnotification="off" |
|||
email="[email protected]" |
|||
|
|||
# Steam login |
|||
steamuser="anonymous" |
|||
steampass="" |
|||
|
|||
# Server settings |
|||
servername="Hurtworld LGSM Server" |
|||
ip="0.0.0.0" |
|||
port="12871" |
|||
queryport="12881" |
|||
maxplayers="20" |
|||
map="" #Optional |
|||
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" |
|||
|
|||
# http://hurtworld.wikia.com/wiki/Hosting_A_Server |
|||
fn_parms(){ |
|||
parms="-batchmode -nographics -exec \"host ${port} ${map} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};${admins}\" -logfile \"${logfile}\" " |
|||
} |
|||
|
|||
#### 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="hurt-world" |
|||
|
|||
# Steam |
|||
appid="405100" |
|||
|
|||
# Server Details |
|||
servicename="hurtworld-server" |
|||
gamename="Hurtworld" |
|||
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}" |
|||
if [ "${x64mode}" == "1" ]; then |
|||
executable="./Hurtworld.x86_64" |
|||
else |
|||
executable="./Hurtworld.x86" |
|||
fi |
|||
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 |
|||
} |
|||
|
|||
fn_functions(){ |
|||
# Functions are defined in fn_functions. |
|||
functionfile="${FUNCNAME}" |
|||
fn_runfunction |
|||
} |
|||
|
|||
fn_functions |
|||
|
|||
getopt=$1 |
|||
fn_getopt |
|||
|
Loading…
Reference in new issue