diff --git a/BrainBread2/bb2server b/BrainBread2/bb2server new file mode 100644 index 000000000..a78fdbc5a --- /dev/null +++ b/BrainBread2/bb2server @@ -0,0 +1,143 @@ +#!/bin/bash +# BrainBread 2 +# Server Management Script +# Author: Daniel Gibbs +# Website: http://gameservermanagers.com +if [ -f ".dev-debug" ]; then + exec 5>dev-debug.log + BASH_XTRACEFD="5" + set -x +fi + +version="090116" + +#### Variables #### + +# Notification Email +# (on|off) +emailnotification="off" +email="email@example.com" + +# Steam login +steamuser="username" +steampass="password" + +# Start Variables +defaultmap="bba_barracks" +maxplayers="20" +port="27015" +sourcetvport="27020" +clientport="27005" +ip="0.0.0.0" +updateonstart="off" + +# Required: Game Server Login Token +# GSLT is required for running a public server. +# More info: http://gameservermanagers.com/gslt +gslt="" + +# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server +fn_parms(){ +parms="-game brainbread2 -insecure -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" +} + +#### 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="346330" + +# Server Details +servicename="bb2-server" +gamename="BrainBread 2" +engine="source" + +# Directories +rootdir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))" +selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" +lockselfname=".${servicename}.lock" +filesdir="${rootdir}/serverfiles" +systemdir="${filesdir}/brainbread2" +executabledir="${filesdir}" +executable="./srcds_run" +servercfg="${servicename}.cfg" +servercfgdir="${systemdir}/cfg" +servercfgfullpath="${servercfgdir}/${servercfg}" +servercfgdefault="${servercfgdir}/lgsm-default.cfg" +backupdir="${rootdir}/backups" + +# Logging +logdays="7" +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" + +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}" + 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 diff --git a/BrainBread2/cfg/lgsm-default.cfg b/BrainBread2/cfg/lgsm-default.cfg new file mode 100644 index 000000000..e016e66fb --- /dev/null +++ b/BrainBread2/cfg/lgsm-default.cfg @@ -0,0 +1,201 @@ +// **************************************************************************** +// * +// BrainBread 2 - server.cfg * +// Version 080116 * +// * +// **************************************************************************** + +// ............................. Basic Settings ............................. // + +// Hostname for server. +hostname "<hostname>" + +// RCON - remote console password. +rcon_password "<rconpassword>" + +// Server password - for private servers. +sv_password "" + +// Contact email for server sysop. +sv_contact "email@example.com" + +// LAN Mode - If set the server will not show on the internet. +// Default: sv_lan 0 +sv_lan 0 + +// Cheats - Allows cheats on the server. Steam achievements and stats are disabled. +// Default: 0 +sv_cheats 0 + +// Friendly Fire - Allows team members to injure other members of their team. +// 0 = Friendly fire off. +// 1 = Friendly fire on. +// Default: 0 +mp_friendlyfire 0 + +// ........................ Game Specific Commands ........................ // +// info: any commands that only apply to this game. + + +// Mercy Value - Sets how many deaths until the players become human once again. +// Default: bb2_allow_mercy 0 +bb2_allow_mercy 3 + +// Late Joining - Allows players to spawn late. +// default bb2_allow_latejoin 0 +bb2_allow_latejoin 1 + +// Player Spawn Protection - Time in seconds after Spawn. +// default bb2_spawn_protection 1 +bb2_spawn_protection 15 + +// Profile System - Allow players to save and load there skills. +// 0 = Disabled, skills are not saved. +// 1 = Global, players can load there global skills. +// 2 = Server, players save there skills to the server. Steam achievements and stats are disabled. +// Default 1 +bb2_allow_profile_system 1 + +// Allow NPC to score - Allow friendly npcs to affect scoring. For example for quests. +// Default 1 +bb2_allow_npc_to_score 0 + +// Vote Settings + +// Voting: Passing Votes - Percentage of players that are required to pass a vote. +// Minimum: 0 +// Maximum: 100 +// Default 50 +bb2_votes_required 50 + +// Voting: Ban Time - Number of minutes a player be banned if a vaote ban passes. +// minimum: 0 (permanent) +// default 30 +bb2_ban_time 30 + + +// Arena Settings + +// Arena: Respawn Interval Time (Seconds). +// Minimum: 20 +// Default 40 +bb2_arena_respawn_time 25 + +// Arena: Number of Reinforcements. +// Minimum: 0 +// Maximum: 100 +// Default 14 +bb2_arena_reinforcement_count 14 + + +// Classic Mode Settings + +// Classic: Zombie No Team Change. +// 0 = Players can become zombies. +// 1 = Players cannot become zombies. +// Default 0 +bb2_classic_zombie_noteamchange 1 + + +// Elimination Settings + +// Elimination: Team Fraglimit - Number of frags for a team to win a game. +// Minimum: 10 +// Default 200 +bb2_elimination_fraglimit 200 + +// Elimination: Respawn Time (Seconds). +// Minimum: 1 +// Maximum: 30 +// Default 4 +bb2_elimination_respawn_time 5 + +// Elimination: Respawn Time Scale - Increase the respawn timer in seconds when a player joins. +// Example: respawn_timer + (joined_players x time_scale) = new_respawn_timer. 14 + (20 x 2) = 54. +// Minimum: 0 +// Maximum: 10 +// Default 1 +bb2_elimination_respawn_time_scale 1 + +// Elimination: Extermination Score - The score a team should be awarded for exterminating (kill everyone before respawn) the other team. +// Minimum: 0 +// Maximum: 50 +// Default 25 +bb2_elimination_score_from_extermination 25 + +// Elimination: Zombie Score - Number of point a zombie gets for a kill. +// Minimum: 2 +// Maximum: 10 +// Default 5 +bb2_elimination_score_zombies 5 + +// Elimination: Team Perk Duration - Number of seconds a team perk lasts. +// Minimum: 5 +// Maximum: 60 +// Default 30 +bb2_elimination_teamperk_duration 30 + +// Elimination: Team Perk Required Kills - Number of kills a team need to get in order to activate a team perk. +// Minimum: 25 +// Maximum: 500 +// Default 50 +bb2_elimination_teamperk_kills_required 50 + + +// Zombie Settings + +// Zombie Lifespan - Number of minutes a regular zombie will last before dying. +// Minimum: 1 +// Default 5 +bb2_zombie_lifespan 2 + +// Max Zombies - Maximum number of zombies allowed in the game. +// Minimum: 1 +// Maximum: 128 +// Default 50 +bb2_zombie_max 45 + + +// M1A1 Abrams Settings + +// M1A1 Abrams: Main Cannon Damage. +// Minimum: 100 +// Maximum: 10000 +// Default 3000 +bb2_m1a1_damage 200 + +// M1A1 Abrams: Machinegun Damage. +// Minimum: 25 +// Maximum: 1000 +// Default 30 +bb2_m1a1_damage_machinegun 25 + +// M1A1 Abrams: Friendly Fire (Including NPC's). +// Minimum: 0 +// Maximum: 1 +// Default 1 +bb2_m1a1_friendly 1 + +// M1A1 Abrams: Machinegun Rate of Fire. +// Minimum: 0.01 +// Maximum: 1 +// Default 0.08 +bb2_m1a1_machinegun_firerate 1 + +// M1A1 Abrams: Explosion Radius. +// Minimum: 200 +// Maximum: 10000 +// Default 500 +bb2_m1a1_radius 500 + +// M1A1 Abrams: Max Sight Range. +// Minimum: 500 +// Maximum: 10000 +// Default 2000 +bb2_m1a1_range_max 1000 + +// M1A1 Abrams: Min Sight Range. +// Minimum: 250 +// Maximum: 5000 +// Default 400 +bb2_m1a1_range_min 250 \ No newline at end of file diff --git a/FistfulOfFrags/cfg/lgsm-default.cfg b/FistfulOfFrags/cfg/lgsm-default.cfg index d7e1d9aa9..81d9929fc 100644 --- a/FistfulOfFrags/cfg/lgsm-default.cfg +++ b/FistfulOfFrags/cfg/lgsm-default.cfg @@ -1,7 +1,7 @@ // **************************************************************************** // * // Fistful of Frags - server.cfg * -// Version 271015 * +// Version 100116 * // * // **************************************************************************** @@ -40,7 +40,7 @@ mapcyclefile "mapcycle.txt" // Default: mp_timelimit 0 mp_timelimit 15 -// ........................ Server Specific Commands ........................ // +// ........................ Game Specific Commands ........................ // // info: any commands that only apply to this game. // Game Modes diff --git a/Insurgency/insserver b/Insurgency/insserver index e43d5e752..66e511149 100644 --- a/Insurgency/insserver +++ b/Insurgency/insserver @@ -31,10 +31,11 @@ sourcetvport="27020" clientport="27005" ip="0.0.0.0" updateonstart="off" +workshop="0" # https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server fn_parms(){ -parms="-game insurgency -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}" +parms="-game insurgency -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers} +sv_workshop_enabled ${workshop}" } #### Advanced Variables #### diff --git a/NoMoreRoomInHell/cfg/lgsm-default.cfg b/NoMoreRoomInHell/cfg/lgsm-default.cfg index 83645c78c..ba48eab5b 100644 --- a/NoMoreRoomInHell/cfg/lgsm-default.cfg +++ b/NoMoreRoomInHell/cfg/lgsm-default.cfg @@ -1,7 +1,7 @@ // **************************************************************************** // * // No More Room in Hell - server.cfg * -// Version 150815 * +// Version 100116 * // * // **************************************************************************** @@ -43,7 +43,7 @@ mp_timelimit 45 // Default: mp_maxrounds 2 mp_maxrounds 2 -// ........................ Server Specific Commands ........................ // +// ........................ Game Specific Commands ........................ // // info: any commands that only apply to this game. // Difficulty diff --git a/PiratesVikingandKnightsII/cfg/lgsm-default.cfg b/PiratesVikingandKnightsII/cfg/lgsm-default.cfg index 8469f1014..48ba5072a 100644 --- a/PiratesVikingandKnightsII/cfg/lgsm-default.cfg +++ b/PiratesVikingandKnightsII/cfg/lgsm-default.cfg @@ -1,7 +1,7 @@ // **************************************************************************** // * // Pirates, Vikings, and Knights II * -// Version 150815 * +// Version 100116 * // * // **************************************************************************** @@ -48,7 +48,7 @@ mp_roundtime 3 // Default: mp_winlimit 0 mp_winlimit 0 -// ........................ Server Specific Commands ........................ // +// ........................ Game Specific Commands ........................ // // Server tags - Tags show up on the in-game server browser. This helps // users filter servers. diff --git a/functions/check.sh b/functions/check.sh index 86e141416..ca50777cc 100644 --- a/functions/check.sh +++ b/functions/check.sh @@ -2,7 +2,7 @@ # LGSM fn_check function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="060116" +lgsm_version="170116" # Description: Overall function for managing checks. # Runs checks that will either halt on or fix an issue. @@ -33,6 +33,14 @@ do fi done +local allowed_commands_array=( command_debug.sh command_start.sh command_stop.sh ) +for allowed_command in "${allowed_commands_array[@]}" +do + if [ "${allowed_command}" == "${function_selfname}" ]; then + check_deps.sh + fi +done + local allowed_commands_array=( command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh ) for allowed_command in "${allowed_commands_array[@]}" do @@ -41,7 +49,7 @@ do fi done -local allowed_commands_array=( command_debug.sh command_start.sh command_stop.sh update_check.sh command_validate.sh ) +local allowed_commands_array=( update_check.sh command_validate.sh ) for allowed_command in "${allowed_commands_array[@]}" do if [ "${allowed_command}" == "${function_selfname}" ]; then diff --git a/functions/check_deps.sh b/functions/check_deps.sh new file mode 100644 index 000000000..1e2e99fee --- /dev/null +++ b/functions/check_deps.sh @@ -0,0 +1,200 @@ +#!/bin/bash +# LGSM check_deps.sh function +# Author: Daniel Gibbs +# Website: http://gameservermanagers.com +lgsm_version="310116" + +# Description: Checks that the requires dependencies are installed for LGSM. + + +fn_deps_detector(){ +# Checks if dependency is missing +if [ -n "$(command -v dpkg-query)" ]; then + dpkg-query -W -f='${Status}' ${deptocheck} 2>/dev/null| grep -q -P '^install ok installed$' + depstatus=$? +elif [ -n "$(command -v yum)" ]; then + yum -q list installed ${deptocheck} > /dev/null 2>&1 + depstatus=$? +fi +if [ "${depstatus}" == "0" ]; then + missingdep=0 + if [ "${function_selfname}" == "command_install.sh" ]; then + echo -e "\e[0;32m${deptocheck}\e[0m" + sleep 0.5 + fi +else + # if missing dependency is found + missingdep=1 + if [ "${function_selfname}" == "command_install.sh" ]; then + echo -e "\e[0;31m${deptocheck}\e[0m" + sleep 0.5 + fi +fi + +# Missing dependencies are added to array_deps_missing +if [ "${missingdep}" == "1" ]; then + array_deps_missing+=("${deptocheck}") +fi +} + +fn_deps_email(){ +# Adds postfix to required dependencies if email notification is enabled +if [ "${emailnotification}" == "on" ]; then + if [ -n "$(command -v dpkg-query)" ]; then + array_deps_required+=( mailutils postfix ) + elif [ -n "$(command -v yum)" ]; then + array_deps_required+=( mailx postfix ) + fi +fi +} + +fn_found_missing_deps(){ +if [ "${#array_deps_missing[@]}" != "0" ]; then + fn_printdots "Checking dependencies" + sleep 2 + fn_printwarn "Checking dependencies: Dependency missing: \e[0;31m${array_deps_missing[@]}\e[0m" + sleep 1 + echo -e "" + sudo -n true > /dev/null 2>&1 + if [ $? -eq 0 ]; then + fn_printinfonl "Attempting to install missing dependencies automatically" + echo -en ".\r" + sleep 1 + echo -en "..\r" + sleep 1 + echo -en "...\r" + sleep 1 + echo -en " \r" + if [ -n "$(command -v dpkg-query)" ]; then + echo "sudo dpkg --add-architecture i386; sudo apt-get install ${array_deps_missing[@]}" + elif [ -n "$(command -v yum)" ]; then + echo "yum install ${array_deps_missing[@]}" + fi + else + echo "" + fn_printinfomationnl "$(whoami) does not have sudo access. manually install dependencies" + echo "" + if [ -n "$(command -v dpkg-query)" ]; then + echo "sudo dpkg --add-architecture i386; sudo apt-get install ${array_deps_missing[@]}" + elif [ -n "$(command -v yum)" ]; then + echo "yum install ${array_deps_missing[@]}" + fi + echo "" + fi + if [ "${function_selfname}" == "command_install.sh" ]; then + sleep 5 + fi +fi +} + +fn_check_loop(){ + # Loop though required depenencies + for deptocheck in "${array_deps_required[@]}" + do + fn_deps_detector + done + + # user to be informaed of any missing dependecies + fn_found_missing_deps +} + +if [ "${function_selfname}" == "command_install.sh" ]; then + echo "" + echo "Checking Dependecies" + echo "=================================" +fi + + +# Check will only run if using apt-get or yum +if [ -n "$(command -v dpkg-query)" ]; then + # Generate array of missing deps + array_deps_missing=() + + # LGSM requirement for curl + array_deps_required=( curl ca-certificates ) + + # All servers except ts3 require tmux + if [ "${executable}" != "./ts3server_startscript.sh" ]; then + array_deps_required+=( tmux ) + fi + + # All servers excelts ts3 & mumble require libstdc++6,lib32gcc1 + if [ "${executable}" != "./ts3server_startscript.sh" ]||[ "${executable}" != "./murmur.x86" ]; then + array_deps_required+=( lib32gcc1 libstdc++6:i386 ) + fi + + # Game Specific requirements + + # Spark + if [ "${engine}" == "spark" ]; then + array_deps_required+=( speex:i386 libtbb2 ) + # 7 Days to Die + elif [ "${executable}" == "./7DaysToDie.sh" ]; then + array_deps_required+=( telnet expect ) + # No More Room in Hell + elif [ "${gamename}" == "No More Room in Hell" ]; then + array_deps_required+=( lib32tinfo5 ) + # Brainbread 2 and Don't Starve Together + elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]; then + array_deps_required+=( libcurl4-gnutls-dev:i386 ) + elif [ "${engine}" == "projectzomboid" ]; then + array_deps_required+=( openjdk-7-jre ) + # Unreal engine + elif [ "${executable}" == "./ucc-bin" ]; then + #UT2K4 + if [ -f "${executabledir}/ut2004-bin" ]; then + array_deps_required+=( libsdl1.2debian libstdc++5:i386 bzip2 unzip ) + #UT99 + else + array_deps_required+=( libsdl1.2debian bzip2 ) + fi + fi + fn_deps_email + fn_check_loop + +elif [ -n "$(command -v yum)" ]; then + # Generate array of missing deps + array_deps_missing=() + + # LGSM requirement for curl + array_deps_required=( curl ) + + # All servers except ts3 require tmux + if [ "${executable}" != "./ts3server_startscript.sh" ]; then + array_deps_required+=( tmux ) + fi + + # All servers excelts ts3 & mumble require libstdc++6,lib32gcc1 + if [ "${executable}" != "./ts3server_startscript.sh" ]||[ "${executable}" != "./murmur.x86" ]; then + array_deps_required+=( glibc.i686 libstdc++.i686 ) + fi + + # Game Specific requirements + + # Spark + if [ "${engine}" == "spark" ]; then + array_deps_required+=( speex.i686 tbb.i686 ) + # 7 Days to Die + elif [ "${executable}" == "./7DaysToDie.sh" ]; then + array_deps_required+=( telnet expect ) + # No More Room in Hell + elif [ "${gamename}" == "No More Room in Hell" ]; then + array_deps_required+=( ncurses-libs.i686 ) + # Brainbread 2 and Don't Starve Together + elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]; then + array_deps_required+=( libcurl.i686 ) + elif [ "${engine}" == "projectzomboid" ]; then + array_deps_required+=( java-1.7.0-openjdk ) + # Unreal engine + elif [ "${executable}" == "./ucc-bin" ]; then + #UT2K4 + if [ -f "${executabledir}/ut2004-bin" ]; then + array_deps_required+=( compat-libstdc++-33.i686 SDL.i686 bzip2 unzip ) + #UT99 + else + array_deps_required+=( SDL.i686 bzip2 ) + fi + fi + fn_deps_email + fn_check_loop +fi \ No newline at end of file diff --git a/functions/command_details.sh b/functions/command_details.sh index ef63a08f9..0084f20e5 100644 --- a/functions/command_details.sh +++ b/functions/command_details.sh @@ -586,6 +586,7 @@ info_distro.sh info_glibc.sh fn_details_os fn_details_performance +fn_details_disk fn_details_gameserver fn_details_backup # Some game servers do not have parms. diff --git a/functions/command_dev_detect_deps.sh b/functions/command_dev_detect_deps.sh index 30f89157d..f6d1da766 100644 --- a/functions/command_dev_detect_deps.sh +++ b/functions/command_dev_detect_deps.sh @@ -35,10 +35,12 @@ elif [ "${executable}" == "./ts3server_startscript.sh" ]; then executable=ts3server_linux_amd64 fi -if [ -n "$(command -v eu-readelf)" ]; then +if [ "$(command -v eu-readelf)" ]; then readelf=eu-readelf -else +elif [ "$(command -v readelf)" ]; readelf=readelf +else + echo "readelf/eu-readelf not installed" fi ${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${rootdir}/.depdetect_readelf" diff --git a/functions/command_install.sh b/functions/command_install.sh index 75e6c0060..791cb160d 100644 --- a/functions/command_install.sh +++ b/functions/command_install.sh @@ -9,7 +9,7 @@ function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" check.sh install_header.sh install_serverdir.sh - +check_deps.sh # Download and install if [ "${gamename}" == "Unreal Tournament 2004" ]; then install_dl_ut2k4.sh @@ -30,11 +30,9 @@ fix.sh install_logs.sh install_gsquery.sh install_config.sh -if [ "${gamename}" == "Counter Strike: Global Offensive" ]; then +if [ "${gamename}" == "Counter Strike: Global Offensive" ]||[ "${gamename}" == "Team Fortress 2" ]||[ "${gamename}" == "BrainBread 2" ]; then install_gslt.sh elif [ "${gamename}" == "Teamspeak 3" ]; then install_ts3db.sh -elif [ "${gamename}" == "Team Fortress 2" ]; then - install_gslt.sh fi install_complete.sh diff --git a/functions/command_start.sh b/functions/command_start.sh index a79302698..309a8078f 100644 --- a/functions/command_start.sh +++ b/functions/command_start.sh @@ -2,7 +2,7 @@ # LGSM command_start.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="070116" # Description: Starts the server. @@ -55,7 +55,11 @@ mv "${scriptlog}" "${scriptlogdate}" # Create lock file date > "${rootdir}/${lockselfname}" cd "${executabledir}" -./ts3server_startscript.sh start inifile="${servercfgfullpath}" > /dev/null 2>&1 +if [ "${ts3serverpass}" == "1" ];then + ./ts3server_startscript.sh start serveradmin_password="${newpassword}" +else + ./ts3server_startscript.sh start inifile="${servercfgfullpath}" > /dev/null 2>&1 +fi sleep 1 info_ts3status.sh if [ "${ts3status}" = "Server seems to have died" ]||[ "${ts3status}" = "No server running (ts3server.pid is missing)" ]; then diff --git a/functions/command_ts3_server_pass.sh b/functions/command_ts3_server_pass.sh new file mode 100644 index 000000000..3cd0f0b1f --- /dev/null +++ b/functions/command_ts3_server_pass.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# LGSM command_serveradmin_password.sh function +# Author: Daniel Gibbs +# Contributor : UltimateByte +# Website: http://gameservermanagers.com +lgsm_version="080116" + +# Description: Changes TS3 serveradmin password + +local modulename="Change password" +function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" + + +fn_serveradmin_password_prompt(){ +echo "" +echo "${gamename} ServerAdmin Password Change" +echo "============================" +echo "" +echo "Press \"CTRL+b d\" to exit console." +fn_printinfomationnl "You are about to change the ${gamename} ServerAdmin password." +fn_printwarningnl "${gamename} will restart during this process." +echo "" +while true; do + read -e -i "y" -p "Continue? [y/N]" yn + case $yn in + [Yy]* ) break;; + [Nn]* ) echo Exiting; return;; + * ) echo "Please answer yes or no.";; +esac +done +fn_scriptlog "Initiating ${gamename} ServerAdmin password change" +read -p "Enter new password : " newpassword +} + + +fn_serveradmin_password_set(){ +fn_printinfonl "Applying new password" +fn_scriptlog "Applying new password" +sleep 1 +# Stop any running server +command_stop.sh +# Start server in "new password mode" +ts3serverpass="1" +fn_printinfonl "Starting server with new password" +command_start.sh +# Stop server in "new password mode" +command_stop.sh +fn_printoknl "Password applied" +fn_scriptlog "New ServerAdmin password applied" +sleep 1 +} + +# Running functions +check.sh +fn_serveradmin_password_prompt +info_ts3status.sh +if [ "${ts3status}" == "Server is running" ]; then + fn_serveradmin_password_set + command_start.sh +else + fn_serveradmin_password_set +fi \ No newline at end of file diff --git a/functions/core_functions.sh b/functions/core_functions.sh index 7f97004ef..7b0f148cd 100644 --- a/functions/core_functions.sh +++ b/functions/core_functions.sh @@ -2,7 +2,7 @@ # LGSM core_functions.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="060116" +lgsm_version="170116" # Description: Defines all functions to allow download and execution of functions using fn_runfunction. # This function is called first before any other function. Without this file other functions would not load. @@ -85,6 +85,11 @@ functionfile="${FUNCNAME}" fn_runfunction } +command_ts3_server_pass.sh(){ +functionfile="${FUNCNAME}" +fn_runfunction +} + fn_restart(){ local modulename="Restarting" info_config.sh @@ -106,6 +111,11 @@ functionfile="${FUNCNAME}" fn_runfunction } +check_deps.sh(){ +functionfile="${FUNCNAME}" +fn_runfunction +} + check_ip.sh(){ functionfile="${FUNCNAME}" fn_runfunction diff --git a/functions/core_getopt.sh b/functions/core_getopt.sh index 2b90be321..95196d0ef 100644 --- a/functions/core_getopt.sh +++ b/functions/core_getopt.sh @@ -2,7 +2,7 @@ # LGSM core_getopt.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="070116" # Description: getopt arguments. @@ -90,6 +90,8 @@ case "$getopt" in command_details.sh;; b|backup) command_backup.sh;; + pw|change-password) + command_ts3_server_pass.sh;; dev|dev-debug) command_dev_debug.sh;; i|install) @@ -113,6 +115,7 @@ case "$getopt" in echo -e "\e[34mmonitor\t\e[0mChecks that the server is running." echo -e "\e[34memail-test\t\e[0mSends test monitor email." echo -e "\e[34mdetails\t\e[0mDisplays useful infomation about the server." + echo -e "\e[34mchange-password\t\e[0mChanges TS3 serveradmin password." echo -e "\e[34mbackup\t\e[0mCreate archive of the server." echo -e "\e[34minstall\t\e[0mInstall the server." echo -e "\e[34mauto-install\t\e[0mInstall the server, without prompts." diff --git a/functions/email.sh b/functions/email.sh index ba5d47717..93d259d80 100644 --- a/functions/email.sh +++ b/functions/email.sh @@ -2,41 +2,66 @@ # LGSM email.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="020216" # Description: Sends email notification if monitor picks up a failure. local modulename="Email" fn_printdots "Sending notification to ${email}" -echo -en "\n" info_distro.sh +info_config.sh +check_ip.sh +fn_parms { - echo -e "========================================\n${servicename} details\n========================================\n" - echo -e "Service: ${servicename}" - echo -e "Server: ${servername}" - echo -e "Game: ${gamename}" + echo -e "========================================\n${servicename} details\n========================================" + echo -e "Service name: ${servicename}" + echo -e "Server name: ${servername}" + echo -e "Game name: ${gamename}" + echo -e "Server IP: ${ip}:${port}" echo -e "Failure reason: ${failurereason}" echo -e "Action Taken: ${actiontaken}\n" - echo -e "========================================\nServer details\n========================================\n" + echo -e "" + echo -e "========================================\nDistro Details\n========================================" echo -e "Date: $(date)" echo -e "Distro: ${os}" echo -e "Arch: ${arch}" echo -e "Kernel: ${kernel}" echo -e "Hostname: $HOSTNAME" + echo -e "tmux: ${tmuxv}" + echo -e "GLIBC: ${glibcv}" + echo -e "" + echo -e "========================================\nPerformance\n========================================" echo -e "Uptime: ${days}d, ${hours}h, ${minutes}m" - echo -e "Avg Load${load}\n" - echo -e "========================================\nLogs\n========================================\n" - echo -e "Script log\n===================\n" - command_details.sh -}|sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"|tee "${scriptlogdir}/${servicename}-email.log" + echo -e "Avg Load: ${load}" + echo -e "" + echo -e "Mem: total used free" + echo -e "Physical: ${physmemtotal} ${physmemused} ${physmemfree}" + echo -e "Swap: ${swaptotal}${swapused} ${swapfree}" + echo -e "" + echo -e "========================================\nStorage\n========================================" + echo -e "\e[34mFilesystem:\t\e[0m${filesystem}" + echo -e "\e[34mTotal:\t\e[0m${totalspace}" + echo -e "\e[34mUsed:\t\e[0m${usedspace}" + echo -e "\e[34mAvailable:\t\e[0m${availspace}" + echo -e "\e[34mServerfiles:\t\e[0m${filesdirdu}" + if [ -d "${backupdir}" ]; then + echo -e "\e[34mBackups:\t\e[0m${backupdirdu}" + fi + echo -e "" + echo -e "========================================\nCommand-line Parameters\n========================================" + echo -e "${executable} ${parms}" + echo -e "" + echo -e "========================================\nLogs\n========================================" +}| sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"| tee "${scriptlogdir}/${servicename}-email.log" > /dev/null 2>&1 +echo -e "\n\n Script log\n===================" >> "${emaillog}" tail -25 "${scriptlog}" >> "${emaillog}" if [ ! -z "${consolelog}" ]; then - echo -e "\n\nConsole log\n====================\n" >> "${emaillog}" - tail -25 "${consolelog}" >> "${emaillog}" + echo -e "\n\n Console log\n====================" >> "${emaillog}" + tail -25 "${consolelog}" | awk '{ sub("\r$", ""); print }' >> "${emaillog}" fi if [ ! -z "${gamelogdir}" ]; then - echo -e "\n\nServer log\n====================\n" >> "${emaillog}" - tail "${gamelogdir}"/*|grep -v "==>"|sed '/^$/d'|tail -25 >> "${emaillog}" + echo -e "\n\n Server log\n====================" >> "${emaillog}" + tail "${gamelogdir}"/* | grep -v "==>" | sed '/^$/d' | tail -25 >> "${emaillog}" fi mail -s "${subject}" ${email} < "${emaillog}" fn_printok "Sending notification to ${email}" diff --git a/functions/fix_ins.sh b/functions/fix_ins.sh index 0e9c77089..210c702ce 100644 --- a/functions/fix_ins.sh +++ b/functions/fix_ins.sh @@ -17,4 +17,3 @@ if [ "${function_selfname}" == "command_debug.sh" ]; then else defaultmap="\\\"${defaultmap}\\\"" fi -fn_parms diff --git a/functions/fn_update_functions b/functions/fn_update_functions index 185f44f5e..2de9afd6d 100644 --- a/functions/fn_update_functions +++ b/functions/fn_update_functions @@ -2,7 +2,7 @@ # LGSM update_functions.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="230116" # Description: LEGACY FUNCTION Deletes the functions dir to allow re-downloading of functions from GitHub. @@ -14,9 +14,9 @@ rm -rfv "${rootdir}/functions/"* exitcode=$? if [ "${exitcode}" == "0" ]; then fn_printok "Updating functions" - fn_scriptlog "Successfull! Updating functions" + fn_scriptlog "Success! Updating functions" else - fn_printokfail "Updating functions" + fn_printfail "Updating functions" fn_scriptlog "Failure! Updating functions" fi echo -ne "\n" \ No newline at end of file diff --git a/functions/info_glibc.sh b/functions/info_glibc.sh index d311cc4d5..4181d011d 100644 --- a/functions/info_glibc.sh +++ b/functions/info_glibc.sh @@ -2,7 +2,7 @@ # LGSM info_glibc.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="100116" # Description: stores details on servers Glibc requirements. @@ -10,6 +10,8 @@ lgsm_version="271215" if [ "${gamename}" == "Blade Symphony" ]; then glibcrequired="2.15" glibcfix="yes" +elif [ "${gamename}" == "BrainBread 2" ]; then + glibcrequired="2.17" elif [ "${gamename}" == "Double Action: Boogaloo" ]; then glibcrequired="2.15" glibcfix="yes" diff --git a/functions/install_config.sh b/functions/install_config.sh index 635c89f24..f3420e9ac 100644 --- a/functions/install_config.sh +++ b/functions/install_config.sh @@ -2,7 +2,7 @@ # LGSM install_config.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="100116" fn_defaultconfig(){ echo "creating ${servercfg} config file." @@ -165,6 +165,11 @@ elif [ "${gamename}" == "ARMA 3" ]; then wget -N /dev/null ${githuburl}/Arma3/cfg/lgsm-default.network.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq sleep 1 fn_arma3config +elif [ "${gamename}" == "BrainBread 2" ]; then + echo -e "downloading lgsm-default.cfg...\c" + wget -N /dev/null ${githuburl}/BrainBread2/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq + sleep 1 + fn_sourceconfig elif [ "${gamename}" == "Black Mesa: Deathmatch" ]; then echo -e "downloading lgsm-default.cfg...\c" wget -N /dev/null ${githuburl}/BlackMesa/cfg/lgsm-default.cfg 2>&1 | grep -F HTTP | cut -c45- | uniq diff --git a/functions/install_steamcmd.sh b/functions/install_steamcmd.sh index fe944a253..1f744e7f6 100644 --- a/functions/install_steamcmd.sh +++ b/functions/install_steamcmd.sh @@ -10,31 +10,4 @@ echo "" echo "Installing SteamCMD" echo "=================================" sleep 1 -steamcmddir="${rootdir}/steamcmd" -if [ ! -f "${steamcmddir}/steamcmd.sh" ]; then - if [ ! -d "${steamcmddir}" ]; then - mkdir -v "${steamcmddir}" - fi - curl=$(curl --fail -o "${steamcmddir}/steamcmd_linux.tar.gz" "http://media.steampowered.com/client/steamcmd_linux.tar.gz" 2>&1) - exitcode=$? - echo -e "downloading steamcmd_linux.tar.gz...\c" - if [ $exitcode -eq 0 ]; then - fn_printokeol - else - fn_printfaileol - echo "${curl}" - echo -e "${githuburl}\n" - exit $exitcode - fi - tar --verbose -zxf "${steamcmddir}/steamcmd_linux.tar.gz" -C "${steamcmddir}" - rm -v "${steamcmddir}/steamcmd_linux.tar.gz" - chmod +x "${steamcmddir}/steamcmd.sh" -else - echo "SteamCMD already installed!" -fi - # Checks that steamcmd is working correctly and will prompt Steam Guard if required. - "${steamcmddir}"/steamcmd.sh +login "${steamuser}" "${steampass}" +quit - if [ $? -ne 0 ]; then - fn_printfailurenl "Error running SteamCMD" - fi -sleep 1 +check_steamcmd.sh diff --git a/functions/install_ts3.sh b/functions/install_ts3.sh index 3860fbc50..f90f91073 100644 --- a/functions/install_ts3.sh +++ b/functions/install_ts3.sh @@ -15,29 +15,29 @@ else exit 1 fi -# Grabs all version numbers not in correct order +# Grabs all version numbers but not in correct order wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '<a href=\".*\/\">.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp -# removes digits to allow sorting of numbers -cat .ts3_version_numbers_unsorted.tmp |tr -cd '[:digit:][*\n]' > .ts3_version_numbers_digit.tmp -# Sorts numbers in to correct order -# merges two files in to one with two columns sorts the numbers in to order then only outputs the second to the ts3_version_numbers.tmp -paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp |sort -rn|awk '{ print $2 }' > .ts3_version_numbers.tmp +# Replaces dots with spaces to split up the number. e.g 3 0 12 1 is 3.0.12.1 this allows correct sorting + cat .ts3_version_numbers_unsorted.tmp | tr "." " " > .ts3_version_numbers_digit.tmp +# Sorts versions in to correct order +# merges 2 files and orders by each column in order allowing these version numbers to be sorted in order +paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp | awk '{print $1,$2,$3,$4 " " $0;}'| sort -k1rn -k2rn -k3rn -k4rn | awk '{print $NF}' > .ts3_version_numbers.tmp # Finds directory with most recent server version. while read ts3_version_number; do - wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz" + wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" if [ $? -eq 0 ]; then availablebuild="${ts3_version_number}" - echo "Latest Build: ${availablebuild}" # Break while-loop, if the latest release could be found - echo "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-66server_linux-${ts3arch}-${ts3_version_number}.tar.g" break fi done < .ts3_version_numbers.tmp -rm -f .ts3_version_numbers_digit.tmp -rm -f .ts3_version_numbers_unsorted.tmp -rm -f .ts3_version_numbers.tmp + +# tidy up +rm -f ".ts3_version_numbers_digit.tmp" +rm -f ".ts3_version_numbers_unsorted.tmp" +rm -f ".ts3_version_numbers.tmp" # Checks availablebuild info is available if [ -z "${availablebuild}" ]; then @@ -49,11 +49,11 @@ if [ -z "${availablebuild}" ]; then fi cd "${rootdir}" -echo -e "downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c" -wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz 2>&1 | grep -F HTTP | cut -c45-| uniq +echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" +wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 2>&1 | grep -F HTTP | cut -c45-| uniq sleep 1 -echo -e "extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c" -tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> ".${servicename}-tar-error.tmp" +echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" +tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> ".${servicename}-tar-error.tmp" local status=$? if [ ${status} -eq 0 ]; then echo "OK" @@ -76,5 +76,5 @@ else rm ".${servicename}-cp-error.tmp" exit $? fi -rm -f teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz +rm -f "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" rm -rf "${rootdir}/teamspeak3-server_linux-${ts3arch}" diff --git a/functions/update_check.sh b/functions/update_check.sh index e0ba3ea96..ece46fb88 100644 --- a/functions/update_check.sh +++ b/functions/update_check.sh @@ -2,7 +2,7 @@ # LGSM update_check.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="020216" # Description: Checks if a server update is available. @@ -188,7 +188,6 @@ sleep 1 # Checks currentbuild info is available, if fails a server restart will be forced to generate logs if [ -z "$(find ./* -name 'ts3server*_0.log')" ]; then fn_printfail "Checking for update: teamspeak.com" - fn_scriptlog "Checking for update: teamspeak.com" sleep 1 fn_printfailnl "Checking for update: teamspeak.com: No logs with server version found" fn_scriptlog "Failure! Checking for update: teamspeak.com: No logs with server version found" @@ -213,27 +212,29 @@ ts3arch=$(ls $(find ${filesdir}/ -name 'ts3server_*_*' 2> /dev/null | grep -v 't # Gets availablebuild info -# Grabs all version numbers not in correct order +# Grabs all version numbers but not in correct order wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '<a href=\".*\/\">.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > .ts3_version_numbers_unsorted.tmp -# removes digits to allow sorting of numbers -cat .ts3_version_numbers_unsorted.tmp |tr -cd '[:digit:][*\n]' > .ts3_version_numbers_digit.tmp -# Sorts numbers in to correct order -# merges two files in to one with two columns sorts the numbers in to order then only outputs the second to the ts3_version_numbers.tmp -paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp |sort -rn|awk '{ print $2 }' > .ts3_version_numbers.tmp +# Replaces dots with spaces to split up the number. e.g 3 0 12 1 is 3.0.12.1 this allows correct sorting + cat .ts3_version_numbers_unsorted.tmp | tr "." " " > .ts3_version_numbers_digit.tmp +# Sorts versions in to correct order +# merges 2 files and orders by each column in order allowing these version numbers to be sorted in order +paste .ts3_version_numbers_digit.tmp .ts3_version_numbers_unsorted.tmp | awk '{print $1,$2,$3,$4 " " $0;}'| sort -k1rn -k2rn -k3rn -k4rn | awk '{print $NF}' > .ts3_version_numbers.tmp # Finds directory with most recent server version. while read ts3_version_number; do - wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz" + wget --spider -q "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" if [ $? -eq 0 ]; then availablebuild="${ts3_version_number}" # Break while-loop, if the latest release could be found break fi done < .ts3_version_numbers.tmp -rm -f .ts3_version_numbers_digit.tmp -rm -f .ts3_version_numbers_unsorted.tmp -rm -f .ts3_version_numbers.tmp + +# tidy up +rm -f ".ts3_version_numbers_digit.tmp" +rm -f ".ts3_version_numbers_unsorted.tmp" +rm -f ".ts3_version_numbers.tmp" # Checks availablebuild info is available if [ -z "${availablebuild}" ]; then diff --git a/functions/update_dl.sh b/functions/update_dl.sh index 09bd3ebe9..a80caa6d8 100644 --- a/functions/update_dl.sh +++ b/functions/update_dl.sh @@ -2,7 +2,7 @@ # LGSM update_dl.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="020216" # Description: Runs a server update. @@ -29,13 +29,13 @@ fix.sh fn_teamspeak3_dl(){ cd "${rootdir}" -echo -e "downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c" -fn_scriptlog "Downloading teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" -wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux-${ts3arch}-${ts3_version_number}.tar.gz 2>&1 | grep -F HTTP | cut -c45-| uniq +echo -e "downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" +fn_scriptlog "Downloading teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" +wget -N /dev/null http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 2>&1 | grep -F HTTP | cut -c45-| uniq sleep 1 -echo -e "extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz...\c" -fn_scriptlog "Extracting teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" -tar -xf "teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz" 2> "${scriptlogdir}/.${servicename}-tar-error.tmp" +echo -e "extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2...\c" +fn_scriptlog "Extracting teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" +tar -xf "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" 2> "${scriptlogdir}/.${servicename}-tar-error.tmp" local status=$? if [ ${status} -eq 0 ]; then echo "OK" @@ -51,7 +51,7 @@ else fi echo -e "copying to ${filesdir}...\c" fn_scriptlog "Copying to ${filesdir}" -cp -R "${rootdir}/teamspeak3-server_linux-${ts3arch}/"* "${filesdir}" 2> "${scriptlogdir}/.${servicename}-cp-error.tmp" +cp -R "${rootdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}" 2> "${scriptlogdir}/.${servicename}-cp-error.tmp" local status=$? if [ ${status} -eq 0 ]; then echo "OK" @@ -65,8 +65,8 @@ else fn_scriptlog "Failure! Unable to update" exit ${status} fi -rm -f teamspeak3-server_linux-${ts3arch}-${availablebuild}.tar.gz -rm -rf "${rootdir}/teamspeak3-server_linux-${ts3arch}" +rm -f teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2 +rm -rf "${rootdir}/teamspeak3-server_linux_${ts3arch}" } check.sh diff --git a/functions/update_functions.sh b/functions/update_functions.sh index 350714ed0..196b90f75 100644 --- a/functions/update_functions.sh +++ b/functions/update_functions.sh @@ -2,7 +2,7 @@ # LGSM update_functions.sh function # Author: Daniel Gibbs # Website: http://gameservermanagers.com -lgsm_version="271215" +lgsm_version="230116" # Description: Deletes the functions dir to allow re-downloading of functions from GitHub. @@ -16,9 +16,9 @@ rm -rfv "${rootdir}/functions/"* exitcode=$? if [ "${exitcode}" == "0" ]; then fn_printok "Updating functions" - fn_scriptlog "Successfull! Updating functions" + fn_scriptlog "Success! Updating functions" else - fn_printokfail "Updating functions" + fn_printfail "Updating functions" fn_scriptlog "Failure! Updating functions" fi echo -ne "\n" \ No newline at end of file