#!/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="271215" #### Variables #### # Notification Email # (on|off) emailnotification="off" email="email@example.com" # 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="master" # 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 } core_functions.sh(){ # Functions are defined in core_functions.sh. functionfile="${FUNCNAME}" fn_runfunction } core_functions.sh getopt=$1 core_getopt.sh