Browse Source

Merge remote-tracking branch 'dgibbs64/master'

pull/1010/head
Alexander Hurd 9 years ago
parent
commit
410b6619ad
  1. 1
      7DaysToDie/sdtdserver
  2. 7
      ARKSurvivalEvolved/arkserver
  3. 1
      Arma3/arma3server
  4. 1
      BlackMesa/bmdmserver
  5. 1
      BladeSymphony/bsserver
  6. 1
      BrainBread2/bb2server
  7. 1
      CodenameCURE/ccserver
  8. 5
      CounterStrike/csserver
  9. 1
      CounterStrikeConditionZero/csczserver
  10. 14
      CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg
  11. 6
      CounterStrikeGlobalOffensive/csgoserver
  12. 8
      CounterStrikeSource/cssserver
  13. 1
      DayOfDefeat/dodserver
  14. 1
      DayOfDefeatSource/dodsserver
  15. 1
      DayOfInfamy/doiserver
  16. 1
      DeathmatchClassic/dmcserver
  17. 0
      DontStarveTogether/cfg/lgsm-default.ini
  18. BIN
      DontStarveTogether/dependencies/libc.so.6
  19. BIN
      DontStarveTogether/dependencies/libpthread.so.0
  20. BIN
      DontStarveTogether/dependencies/librt.so.1
  21. 1
      DontStarveTogether/dstserver
  22. 1
      DoubleActionBoogaloo/dabserver
  23. BIN
      DoubleActionBoogaloo/dependencies/libm.so.6
  24. 161
      EmpiresMod/emserver
  25. 1
      FistfulOfFrags/fofserver
  26. 10
      GarrysMod/gmodserver
  27. 1
      GoldenEyeSource/gesserver
  28. 1
      HalfLife2Deathmatch/hl2dmserver
  29. 1
      HalfLifeDeathmatch/hldmserver
  30. 1
      HalfLifeDeathmatchSource/hldmsserver
  31. 4
      Hurtworld/hwserver
  32. BIN
      Insurgency/dependencies/libc.so.6
  33. BIN
      Insurgency/dependencies/libm.so.6
  34. BIN
      Insurgency/dependencies/librt.so.1
  35. 1
      Insurgency/insserver
  36. 1
      JustCause2/jc2server
  37. 1
      KillingFloor/kfserver
  38. 1
      Left4Dead/l4dserver
  39. 4
      Left4Dead2/l4d2server
  40. 34
      Mumble/mumbleserver
  41. 1
      NS2Combat/ns2cserver
  42. 6
      NaturalSelection2/ns2server
  43. 1
      NoMoreRoomInHell/nmrihserver
  44. 1
      OpposingForce/opforserver
  45. 1
      PiratesVikingandKnightsII/pvkiiserver
  46. 26
      ProjectZomboid/cfg/lgsm-default.ini
  47. 6
      ProjectZomboid/pzserver
  48. 1
      QuakeLive/qlserver
  49. 1
      RedOrchestra/roserver
  50. 1
      Ricochet/ricochetserver
  51. 1
      Rust/rustserver
  52. 1
      SeriousSam3BFE/ss3sserver
  53. 1
      Starbound/sbserver
  54. 1
      SvenCoop/svencoopserver
  55. 1
      TeamFortress2/tf2server
  56. 1
      TeamFortressClassic/tfcserver
  57. 8
      TeamSpeak3/cfg/lgsm-default.ini
  58. 9
      TeamSpeak3/ts3server
  59. 2
      Teeworlds/cfg/tdm.cfg
  60. 1
      Teeworlds/twserver
  61. 1
      Terraria/terrariaserver
  62. 1
      UnrealTournament2004/ut2k4server
  63. 5
      UnrealTournament99/ut99server
  64. BIN
      images/logo/lgsm-250x130-dark.png
  65. BIN
      images/logo/lgsm-250x143-dark.png
  66. 6
      lgsm/functions/alert.sh
  67. 6
      lgsm/functions/alert_email.sh
  68. 2
      lgsm/functions/alert_pushbullet.sh
  69. 13
      lgsm/functions/check.sh
  70. 2
      lgsm/functions/check_config.sh
  71. 57
      lgsm/functions/check_deps.sh
  72. 2
      lgsm/functions/check_glibc.sh
  73. 12
      lgsm/functions/check_ip.sh
  74. 6
      lgsm/functions/check_logs.sh
  75. 28
      lgsm/functions/check_permissions.sh
  76. 1
      lgsm/functions/check_root.sh
  77. 15
      lgsm/functions/check_status.sh
  78. 9
      lgsm/functions/check_steamcmd.sh
  79. 1
      lgsm/functions/check_system_dir.sh
  80. 13
      lgsm/functions/check_system_requirements.sh
  81. 21
      lgsm/functions/check_tmux.sh
  82. 4
      lgsm/functions/command_backup.sh
  83. 4
      lgsm/functions/command_debug.sh
  84. 25
      lgsm/functions/command_details.sh
  85. 2
      lgsm/functions/command_dev_debug.sh
  86. 96
      lgsm/functions/command_dev_detect_deps.sh
  87. 31
      lgsm/functions/command_dev_detect_glibc.sh
  88. 8
      lgsm/functions/command_fastdl.sh
  89. 7
      lgsm/functions/command_install.sh
  90. 26
      lgsm/functions/command_monitor.sh
  91. 4
      lgsm/functions/command_restart.sh
  92. 5
      lgsm/functions/command_start.sh
  93. 32
      lgsm/functions/command_stop.sh
  94. 2
      lgsm/functions/command_test_alert.sh
  95. 2
      lgsm/functions/command_ts3_server_pass.sh
  96. 6
      lgsm/functions/command_update.sh
  97. 4
      lgsm/functions/command_update_functions.sh
  98. 18
      lgsm/functions/command_validate.sh
  99. 2
      lgsm/functions/compress_unreal2_maps.sh
  100. 2
      lgsm/functions/compress_ut99_maps.sh

1
7DaysToDie/sdtdserver

@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

7
ARKSurvivalEvolved/arkserver

@ -37,10 +37,10 @@ rconport="32330"
rconpassword="" # Set to enable rcon
maxplayers="50"
ip="0.0.0.0"
updateonstart="off"
updateonstart="off"
fn_parms(){
parms="TheIsland?listen?MultiHome=${ip}?SessionName=${servername}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port}?ServerAdminPassword=${rconpassword}"
parms="\"TheIsland?listen?MultiHome=${ip}?SessionName=${servername}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port}?ServerAdminPassword=${rconpassword}\""
}
#### Advanced Variables ####
@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/ShooterGame"
executabledir="${systemdir}/Binaries/Linux"

1
Arma3/arma3server

@ -80,6 +80,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
BlackMesa/bmdmserver

@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/bms"
executabledir="${filesdir}"

1
BladeSymphony/bsserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/berimbau"
executabledir="${filesdir}"

1
BrainBread2/bb2server

@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/brainbread2"
executabledir="${filesdir}"

1
CodenameCURE/ccserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/cure"
executabledir="${filesdir}"

5
CounterStrike/csserver

@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
version="210516"
version="060816"
#### Variables ####
@ -66,12 +66,13 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/cstrike"
executabledir="${filesdir}"
executable="./hlds_run"
servercfg="${servicename}.cfg"
servercfgdir="${systemdir}/cfg"
servercfgdir="${systemdir}"
servercfgfullpath="${servercfgdir}/${servercfg}"
servercfgdefault="${servercfgdir}/lgsm-default.cfg"
backupdir="${rootdir}/backups"

1
CounterStrikeConditionZero/csczserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/czero"
executabledir="${filesdir}"

14
CounterStrikeGlobalOffensive/cfg/lgsm-default.cfg

@ -14,10 +14,18 @@ sv_logecho 1
sv_logfile 1
sv_log_onefile 0
// Server Hibernation
sv_hibernate_when_empty 1
sv_hibernate_ms 5
// Server Query
// More info at: https://www.gametracker.com/games/csgo/forum.php?thread=91691
host_name_store 1
host_info_show 1
host_players_show 2
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip

6
CounterStrikeGlobalOffensive/csgoserver

@ -78,6 +78,11 @@ githubbranch="master"
# Steam
appid="740"
# Steam App Branch Select
# Allows to opt into the various Steam app branches. Default branch is "".
# Example: "-beta 1.35.4.4"
branch=""
# Server Details
servicename="csgo-server"
gamename="Counter Strike: Global Offensive"
@ -89,6 +94,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/csgo"
executabledir="${filesdir}"

8
CounterStrikeSource/cssserver

@ -38,9 +38,14 @@ clientport="27005"
ip="0.0.0.0"
updateonstart="off"
# Required: Game Server Login Token
# GSLT is required for running a public server.
# More info: https://gameservermanagers.com/gslt
gslt=""
# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
fn_parms(){
parms="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
parms="-game cstrike -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
}
#### Advanced Variables ####
@ -66,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/cstrike"
executabledir="${filesdir}"

1
DayOfDefeat/dodserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dod"
executabledir="${filesdir}"

1
DayOfDefeatSource/dodsserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dod"
executabledir="${filesdir}"

1
DayOfInfamy/doi-server → DayOfInfamy/doiserver

@ -68,6 +68,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/doi"
executabledir="${filesdir}"

1
DeathmatchClassic/dmcserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dmc"
executabledir="${filesdir}"

0
DontStarveTogether/lgsm-default.ini → DontStarveTogether/cfg/lgsm-default.ini

BIN
DontStarveTogether/dependencies/libc.so.6

Binary file not shown.

BIN
DontStarveTogether/dependencies/libpthread.so.0

Binary file not shown.

BIN
DontStarveTogether/dependencies/librt.so.1

Binary file not shown.

1
DontStarveTogether/dstserver

@ -64,6 +64,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}/bin"

1
DoubleActionBoogaloo/dabserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dab"
executabledir="${filesdir}"

BIN
DoubleActionBoogaloo/dependencies/libm.so.6

Binary file not shown.

161
EmpiresMod/emserver

@ -0,0 +1,161 @@
#!/bin/bash
# Empires Mod
# Server Management Script
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
if [ -f ".dev-debug" ]; then
exec 5>dev-debug.log
BASH_XTRACEFD="5"
set -x
fi
version="210516"
#### Variables ####
# Notification Alerts
# (on|off)
# Email
emailalert="off"
email="[email protected]"
# Pushbullet
# https://www.pushbullet.com/#settings
pushbulletalert="off"
pushbullettoken="accesstoken"
# Steam login
steamuser="anonymous"
steampass=""
# Start Variables
defaultmap="emp_district"
maxplayers="62"
port="27015"
sourcetvport="27020"
clientport="27005"
ip="0.0.0.0"
updateonstart="off"
# Optional: Game Server Login Token
# GSLT can be used for running a public server.
# More info: https://gameservermanagers.com/gslt
gslt=""
# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
fn_parms(){
parms="-game empires -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +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="460040"
# Server Details
servicename="em-server"
gamename="Empires Mod"
engine="source"
# 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"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/empires"
executabledir="${filesdir}"
executable="./srcds_run"
servercfg="${servicename}.cfg"
servercfgdir="${systemdir}/cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
servercfgdefault="${servercfgdir}/server.cfg"
backupdir="${rootdir}/backups"
# Logging
logdays="7"
gamelogdir="${systemdir}/logs"
scriptlogdir="${rootdir}/log/script"
consolelogdir="${rootdir}/log/console"
consolelogging="on"
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
# 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
}
core_dl.sh
core_functions.sh
getopt=$1
core_getopt.sh

1
FistfulOfFrags/fofserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/fof"
executabledir="${filesdir}"

10
GarrysMod/gmodserver

@ -29,6 +29,11 @@ pushbullettoken="accesstoken"
steamuser="anonymous"
steampass=""
# Steam App Branch Select
# Allows to opt into the various Steam app branches. Default branch is "".
# Example: "-beta prerelease "
branch=""
# Workshop Variables
# http://wiki.garrysmod.com/page/Workshop_for_Dedicated_Servers
workshopauth=""
@ -41,8 +46,8 @@ maxplayers="16"
port="27015"
sourcetvport="27020"
clientport="27005"
ip="0.0.0.0"
tickrate="66"
ip="0.0.0.0"
updateonstart="off"
# Custom Start Parameters
@ -56,7 +61,7 @@ gslt=""
# https://developer.valvesoftware.com/wiki/Command_Line_Options#Source_Dedicated_Server
fn_parms(){
parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate {tickrate} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}"
parms="-game garrysmod -strictportbind -ip ${ip} -port ${port} -tickrate ${tickrate} +host_workshop_collection ${workshopcollectionid} -authkey ${workshopauth} +clientport ${clientport} +tv_port ${sourcetvport} +gamemode ${gamemode} +map ${defaultmap} +sv_setsteamaccount ${gslt} +servercfgfile ${servercfg} -maxplayers ${maxplayers} ${customparms}"
}
#### Advanced Variables ####
@ -82,6 +87,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/garrysmod"
addonsdir="${systemdir}/addons"

1
GoldenEyeSource/gesserver

@ -67,6 +67,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/gesource"
executabledir="${filesdir}"

1
HalfLife2Deathmatch/hl2dmserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/hl2mp"
executabledir="${filesdir}"

1
HalfLifeDeathmatch/hldmserver

@ -65,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/valve"
executabledir="${filesdir}"

1
HalfLifeDeathmatchSource/hldmsserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/hl1mp"
executabledir="${filesdir}"

4
Hurtworld/hwserver

@ -31,8 +31,9 @@ steamuser="anonymous"
steampass=""
# Server settings
servername="Hurtworld LGSM Server"
ip="0.0.0.0"
updateonstart="off"
servername="Hurtworld LGSM Server"
port="12871"
queryport="12881"
maxplayers="20"
@ -79,6 +80,7 @@ selfname=$(basename $(readlink -f "${BASH_SOURCE[0]}"))
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

BIN
Insurgency/dependencies/libc.so.6

Binary file not shown.

BIN
Insurgency/dependencies/libm.so.6

Binary file not shown.

BIN
Insurgency/dependencies/librt.so.1

Binary file not shown.

1
Insurgency/insserver

@ -68,6 +68,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/insurgency"
executabledir="${filesdir}"

1
JustCause2/jc2server

@ -30,6 +30,7 @@ steamuser="anonymous"
steampass=""
# Start Variables
ip="0.0.0.0"
updateonstart="off"
fn_parms(){

1
KillingFloor/kfserver

@ -65,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
executabledir="${systemdir}"

1
Left4Dead/l4dserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/left4dead"
executabledir="${filesdir}"

4
Left4Dead2/l4d2server

@ -25,9 +25,6 @@ email="[email protected]"
pushbulletalert="off"
pushbullettoken="accesstoken"
# Pushover
#Push alot
# Steam login
steamuser="anonymous"
steampass=""
@ -68,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/left4dead2"
executabledir="${filesdir}"

34
Mumble/mumbleserver

@ -2,6 +2,7 @@
# Mumble
# Server Management Script
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
if [ -f ".dev-debug" ]; then
exec 5>dev-debug.log
@ -9,7 +10,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
version="210516"
version="290716"
#### Variables ####
@ -25,6 +26,23 @@ email="[email protected]"
pushbulletalert="off"
pushbullettoken="accesstoken"
# Start Variables
updateonstart="off"
fn_parms(){
parms="-fg -ini ${servercfgfullpath}"
}
#### 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"
# Server Details
gamename="Mumble"
servicename="mumble-server"
@ -35,6 +53,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
@ -46,7 +65,7 @@ backupdir="${rootdir}/backups"
# Logging
logdays="7"
logdir="${rootdir}/log"
gamelogdir="${rootdir}/log"
scriptlogdir="${rootdir}/log/script"
consolelogdir="${rootdir}/log/console"
consolelogging="on"
@ -58,17 +77,6 @@ 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"
fn_parms(){
parms="-fg -ini ${servercfgfullpath}"
}
# Github Branch Select
# Allows for the use of different function files
# from a different repo and/or branch.
githubuser="dgibbs64"
githubrepo="linuxgsm"
githubbranch="master"
##### Script #####
# Do not edit

1
NS2Combat/ns2cserver

@ -73,6 +73,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}/ia32"

6
NaturalSelection2/ns2server

@ -62,6 +62,11 @@ githubbranch="master"
# Steam
appid="4940"
# Steam App Branch Select
# Allows to opt into the various Steam app branches. Default branch is "".
# Example: "-beta beta"
branch=""
# Server Details
servicename="ns2-server"
gamename="Natural Selection 2"
@ -73,6 +78,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
NoMoreRoomInHell/nmrihserver

@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/nmrih"
executabledir="${filesdir}"

1
OpposingForce/opforserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/gearbox"
executabledir="${filesdir}"

1
PiratesVikingandKnightsII/pvkiiserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/pvkii"
executabledir="${filesdir}"

26
ProjectZomboid/cfg/lgsm-default.ini

@ -14,10 +14,8 @@ SafetyToggleTimer=100
SafetyCooldownTimer=120
SpawnItems=
DefaultPort=16261
ResetID=834499345
Mods=
Map=Muldraugh, KY
SpawnRegions=servertest_spawnregions.lua
DoLuaChecksum=true
Public=false
PublicName=pzserver
@ -33,7 +31,7 @@ NoFireSpread=false
NoFire=false
AnnounceDeath=false
MinutesPerPage=1.0
HoursForCorpseRemoval=0
HoursForCorpseRemoval=0.0
SaveWorldEveryMinutes=0
PlayerSafehouse=false
AdminSafehouse=false
@ -44,3 +42,25 @@ SafehouseAllowRespawn=false
SafehouseDaySurvivedToClaim=0
SafeHouseRemovalTime=144
AllowDestructionBySledgehammer=true
KickFastPlayers=false
RCONPort=27015
RCONPassword=
Password=
MaxAccountsPerUser=0
SleepAllowed=false
SleepNeeded=false
SteamPort1=8766
SteamPort2=8767
WorkshopItems=
SteamScoreboard=true
SteamVAC=true
UPnP=true
UPnPLeaseTime=86400
UPnPZeroLeaseTimeFallback=true
UPnPForce=true
CoopServerLaunchTimeout=20
CoopMasterPingTimeout=60
server_browser_announced_ip=
UseTCPForMapDownloads=false
PlayerRespawnWithSelf=false
PlayerRespawnWithOther=false

6
ProjectZomboid/pzserver

@ -10,7 +10,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
version="210516"
version="290716"
#### Variables ####
@ -31,11 +31,12 @@ steamuser="anonymous"
steampass=""
# Start Variables
adminpassword="CHANGE_ME"
ip="0.0.0.0"
updateonstart="off"
fn_parms(){
parms=""
parms="-ip ${ip} -adminpassword \"${adminpassword}\""
}
#### Advanced Variables ####
@ -64,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
QuakeLive/qlserver

@ -69,6 +69,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
RedOrchestra/roserver

@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/system"
executabledir="${systemdir}"

1
Ricochet/ricochetserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/ricochet"
executabledir="${filesdir}"

1
Rust/rustserver

@ -83,6 +83,7 @@ selfname=$(basename $(readlink -f "${BASH_SOURCE[0]}"))
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
SeriousSam3BFE/ss3sserver

@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/Bin"
executable="./runSam3_DedicatedServer.sh"

1
Starbound/sbserver

@ -60,6 +60,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}/linux"

1
SvenCoop/svencoopserver

@ -65,6 +65,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/svencoop"
executabledir="${filesdir}"

1
TeamFortress2/tf2server

@ -71,6 +71,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/tf"
executabledir="${filesdir}"

1
TeamFortressClassic/tfcserver

@ -66,6 +66,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/tfc"
executabledir="${filesdir}"

8
TeamSpeak3/cfg/lgsm-default.ini

@ -1,11 +1,11 @@
machine_id=
default_voice_port=9987
voice_ip=0.0.0.0
voice_ip=0.0.0.0, ::
licensepath=
filetransfer_port=30033
filetransfer_ip=0.0.0.0
filetransfer_ip=0.0.0.0, ::
query_port=10011
query_ip=0.0.0.0
query_ip=0.0.0.0, ::
query_ip_whitelist=query_ip_whitelist.txt
query_ip_blacklist=query_ip_blacklist.txt
dbplugin=ts3db_sqlite3
@ -17,4 +17,4 @@ logpath=logs
logquerycommands=0
dbclientkeepdays=30
logappend=0
query_skipbruteforcecheck=0
query_skipbruteforcecheck=0

9
TeamSpeak3/ts3server

@ -1,5 +1,5 @@
#!/bin/bash
# Teamspeak 3
# TeamSpeak 3
# Server Management Script
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
@ -9,7 +9,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
version="210516"
version="290716"
#### Variables ####
@ -29,8 +29,8 @@ pushbullettoken="accesstoken"
updateonstart="off"
# Server Details
gamename="Teamspeak 3"
servername="Teamspeak 3 Server"
gamename="TeamSpeak 3"
servername="TeamSpeak 3 Server"
servicename="ts3-server"
# Directories
@ -39,6 +39,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

2
Teeworlds/cfg/tdm.cfg

@ -1,6 +1,6 @@
// ****************************************************************************
// *
// TeeWorlds - tdm.cfg *
// Teeworlds - tdm.cfg *
// Version 281015 *
// *
// ****************************************************************************

1
Teeworlds/twserver

@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
Terraria/terrariaserver

@ -61,6 +61,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"

1
UnrealTournament2004/ut2k4server

@ -44,6 +44,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
executabledir="${systemdir}"

5
UnrealTournament99/ut99server

@ -20,7 +20,7 @@ version="210516"
emailalert="off"
email="[email protected]"
# Pushbullet
# Pushbullet
# https://www.pushbullet.com/#settings
pushbulletalert="off"
pushbullettoken="accesstoken"
@ -53,6 +53,7 @@ selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
executabledir="${systemdir}"
@ -112,7 +113,7 @@ if [ ! -f "${filedir}/${filename}" ]; then
exit 1
else
echo -e "\e[0;32mOK\e[0m"
fi
fi
else
echo -e "\e[0;31mFAIL\e[0m\n"
echo "Curl is not installed!"

BIN
images/logo/lgsm-250x130-dark.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
images/logo/lgsm-250x143-dark.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

6
lgsm/functions/alert.sh

@ -28,7 +28,7 @@ fn_alert_restart_query(){
fn_alert_update(){
fn_script_log_info "Sending update alert"
alertsubject="LGSM - Updated - ${servername}"
alertbody="${servicename} recieved update"
alertbody="${servicename} received update"
}
if [ "${alert}" == "restart" ]; then
@ -41,9 +41,9 @@ elif [ "${alert}" == "test" ]; then
fn_alert_test
fi
if [ "${emailnotification}" == "on" ]||[ "${emailalert}" == "on" ]&&[ -n "${email}" ]; then
if [ "${emailalert}" == "on" ]&&[ -n "${email}" ]; then
alert_email.sh
elif [ "${emailnotification}" != "on" ]||[ "${emailalert}" != "on" ]&&[ "${function_selfname}" == "command_test_alert.sh" ]; then
elif [ "${emailalert}" != "on" ]&&[ "${function_selfname}" == "command_test_alert.sh" ]; then
fn_print_warn_nl "Email alerts not enabled"
fn_script_log_warn "Email alerts not enabled"
elif [ -z "${email}" ]&&[ "${function_selfname}" == "command_test_alert.sh" ]; then

6
lgsm/functions/alert_email.sh

@ -2,7 +2,7 @@
# LGSM alert_email.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Sends email alert if monitor picks up a failure.
# Description: Sends email alert including server details and logs.
local commandname="ALERT"
local commandaction="Alert"
@ -32,7 +32,7 @@ fn_details_os(){
echo -e ""
echo -e "Distro Details"
echo -e "================================="
echo -e "Distro: ${os}"
echo -e "Distro: ${distroname}"
echo -e "Arch: ${arch}"
echo -e "Kernel: ${kernel}"
echo -e "Hostname: $HOSTNAME"
@ -153,7 +153,7 @@ fn_details_gameserver(){
echo -e "Tick rate: ${tickrate}"
fi
# Teamspeak dbplugin
# TeamSpeak dbplugin
if [ -n "${dbplugin}" ]; then
echo -e "dbplugin: ${dbplugin}"
fi

2
lgsm/functions/alert_pushbullet.sh

@ -2,7 +2,7 @@
# LGSM alert_pushbullet.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: alerts using pushbullet.
# Description: Sends Pushbullet alert including the server status.
local commandname="ALERT"
local commandaction="Alert"

13
lgsm/functions/check.sh

@ -2,7 +2,6 @@
# LGSM check.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Overall function for managing checks.
# Runs checks that will either halt on or fix an issue.
@ -14,7 +13,7 @@ local commandname="CHECK"
check_root.sh
check_permissions.sh
if [ "${function_selfname}" != "command_install.sh" ] && [ "${function_selfname}" != "command_update_functions.sh" ]; then
if [ "${function_selfname}" != "command_install.sh" ]&&[ "${function_selfname}" != "command_update_functions.sh" ]; then
check_system_dir.sh
fi
@ -60,14 +59,6 @@ do
fi
done
local allowed_commands_array=( command_console.sh command_start.sh )
for allowed_command in "${allowed_commands_array[@]}"
do
if [ "${allowed_command}" == "${function_selfname}" ]||[ "${gamename}" != "Teamspeak 3" ]; then
check_tmux.sh
fi
done
local allowed_commands_array=( command_console.sh command_debug.sh command_details.sh command_monitor.sh command_start.sh command_stop.sh )
for allowed_command in "${allowed_commands_array[@]}"
do
@ -84,7 +75,7 @@ do
fi
done
local allowed_commands_array=( command_install.sh command_start.sh command_debug.sh )
local allowed_commands_array=( command_debug.sh command_start.sh command_install.sh )
for allowed_command in "${allowed_commands_array[@]}"
do
if [ "${allowed_command}" == "${function_selfname}" ]; then

2
lgsm/functions/check_config.sh

@ -2,7 +2,7 @@
# LGSM check_config.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: If server config missing warn user.
# Description: Checks if the server config is missing and warns the user if needed.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

57
lgsm/functions/check_deps.sh

@ -2,14 +2,14 @@
# LGSM check_deps.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks that the requires dependencies are installed for LGSM.
# Description: Checks if required dependencies are installed for LGSM.
local commandname="CHECK"
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$'
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
@ -18,6 +18,11 @@ fn_deps_detector(){
if [ "${depstatus}" == "0" ]; then
missingdep=0
if [ "${function_selfname}" == "command_install.sh" ]; then
if [ "${tmuxcheck}" == "1" ]; then
# Added for users compiling tmux from source to bypass rpm check
echo -e "${green}tmux${default}"
unset tmuxcheck
fi
echo -e "${green}${deptocheck}${default}"
sleep 0.5
fi
@ -63,7 +68,7 @@ fn_found_missing_deps(){
if [ "${#array_deps_missing[@]}" != "0" ]; then
fn_print_dots "Checking dependencies"
sleep 0.5
fn_print_error "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
fn_print_error_nl "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
fn_script_log_error "Checking dependencies: missing: ${red}${array_deps_missing[@]}${default}"
sleep 1
sudo -v > /dev/null 2>&1
@ -86,7 +91,7 @@ fn_found_missing_deps(){
fi
if [ $? != 0 ]; then
fn_print_failure_nl "Unable to install dependencies"
fn_script_log_fail "Unable to install dependencies"
fn_script_log_fatal "Unable to install dependencies"
else
fn_print_complete_nl "Install dependencies completed"
fn_script_log_pass "Install dependencies completed"
@ -133,15 +138,19 @@ if [ -n "$(command -v dpkg-query)" ]; then
array_deps_missing=()
# LGSM requirements
array_deps_required=( curl ca-certificates file bsdmainutils util-linux python )
array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python bzip2 gzip )
# All servers except ts3 require tmux
if [ "${executable}" != "./ts3server_startscript.sh" ]; then
array_deps_required+=( tmux )
if [ "$(command -v tmux)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
tmuxcheck=1 # Added for users compiling tmux from source to bypass rpm check
else
array_deps_required+=( tmux )
fi
fi
# All servers except ts3 & mumble require libstdc++6, lib32gcc1
if [ "${executable}" != "./ts3server_startscript.sh" ]||[ "${executable}" != "./murmur.x86" ]; then
if [ "${gamename}" != "TeamSpeak 3" ]||[ "${gamename}" != "Mumble" ]; then
if [ "${arch}" == "x86_64" ]; then
array_deps_required+=( lib32gcc1 libstdc++6:i386 )
else
@ -157,14 +166,19 @@ if [ -n "$(command -v dpkg-query)" ]; then
# 7 Days to Die
elif [ "${gamename}" == "7 Days To Die" ]; then
array_deps_required+=( telnet expect )
# No More Room in Hell
elif [ "${gamename}" == "No More Room in Hell" ]; then
array_deps_required+=( lib32tinfo5 )
# No More Room in Hell, Counter Strike: Source and Garry's Mod
elif [ "${gamename}" == "No More Room in Hell" ]||[ "${gamename}" == "Counter Strike: Source" ]||[ "${gamename}" == "Garry's Mod" ]; then
if [ "${arch}" == "x86_64" ]; then
array_deps_required+=( lib32tinfo5 )
else
array_deps_required+=( libtinfo5 )
fi
# Brainbread 2 and Don't Starve Together
elif [ "${gamename}" == "Brainbread 2" ]||[ "${gamename}" == "Don't Starve Together" ]; then
array_deps_required+=( libcurl4-gnutls-dev:i386 )
# Project Zomboid
elif [ "${engine}" == "projectzomboid" ]; then
array_deps_required+=( openjdk-7-jre )
array_deps_required+=( default-jdk )
# Unreal engine
elif [ "${executable}" == "./ucc-bin" ]; then
#UT2K4
@ -183,11 +197,19 @@ elif [ -n "$(command -v yum)" ]; then
array_deps_missing=()
# LGSM requirements
array_deps_required=( curl util-linux python file )
if [ "${distroversion}" == "6" ]; then
array_deps_required=( curl wget util-linux-ng python file gzip bzip2 )
else
array_deps_required=( curl wget util-linux python file gzip bzip2 )
fi
# All servers except ts3 require tmux
if [ "${executable}" != "./ts3server_startscript.sh" ]; then
array_deps_required+=( tmux )
if [ "$(command -v tmux)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
tmuxcheck=1 # Added for users compiling tmux from source to bypass rpm check
else
array_deps_required+=( tmux )
fi
fi
# All servers excelts ts3 & mumble require glibc.i686 libstdc++.i686
@ -203,15 +225,16 @@ elif [ -n "$(command -v yum)" ]; then
# 7 Days to Die
elif [ "${gamename}" == "7 Days To Die" ]; then
array_deps_required+=( telnet expect )
# No More Room in Hell
elif [ "${gamename}" == "No More Room in Hell" ]; then
# No More Room in Hell, Counter Strike: Source and Garry's Mod
elif [ "${gamename}" == "No More Room in Hell" ]||[ "${gamename}" == "Counter Strike: Source" ]||[ "${gamename}" == "Garry's Mod" ]; 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 )
# Project Zomboid
elif [ "${engine}" == "projectzomboid" ]; then
array_deps_required+=( java-1.7.0-openjdk )
# Unreal engine
array_deps_required+=( java-1.8.0-openjdk )
# Unreal Engine
elif [ "${executable}" == "./ucc-bin" ]; then
#UT2K4
if [ -f "${executabledir}/ut2004-bin" ]; then

2
lgsm/functions/check_glibc.sh

@ -2,7 +2,7 @@
# LGSM check_glibc.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks if server has correct glibc or has a fix available.
# Description: Checks if the server has the correct Glibc version or a fix available.
local commandname="CHECK"

12
lgsm/functions/check_ip.sh

@ -3,12 +3,12 @@
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Automatically identifies the server interface IP.
# If multiple interfaces are detected the user will need to manualy set using ip="0.0.0.0".
# If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
if [ "${gamename}" != "Teamspeak 3" ]; then
if [ "${gamename}" != "TeamSpeak 3" ]; then
if [ ! -f "/bin/ip" ]; then
ipcommand="/sbin/ip"
else
@ -19,9 +19,11 @@ if [ "${gamename}" != "Teamspeak 3" ]; then
if [ "${ip}" == "0.0.0.0" ]||[ "${ip}" == "" ]; then
if [ "${getipwc}" -ge "2" ]; then
fn_print_dots ""
sleep 0.5
fn_print_fail "Multiple active network interfaces found.\n\n"
fn_print_dots "Check IP"
sleep 1
fn_print_fail "Check IP: Multiple active network interfaces found."
sleep 1
echo -en "\n"
fn_print_infomation "Specify the IP you want to use within the ${selfname} script.\n"
echo -en "Set ip=\"0.0.0.0\" to one of the following:\n"
echo -en "${getip}\n"

6
lgsm/functions/check_logs.sh

@ -2,13 +2,13 @@
# LGSM check_logs.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks that log files exist on server start
# Description: Checks if log files exist.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
# Create dir's for the script and console logs
if [ ! -d "${scriptlogdir}" ]||[ ! -d "${consolelogdir}" ]&&[ "${gamename}" != "Teamspeak 3" ]; then
# Create directories for the script and console logs
if [ ! -d "${scriptlogdir}" ]||[ ! -d "${consolelogdir}" ]&&[ "${gamename}" != "TeamSpeak 3" ]; then
fn_print_dots "Checking for log files"
sleep 0.5
fn_print_info_nl "Checking for log files: Creating log files"

28
lgsm/functions/check_permissions.sh

@ -3,27 +3,29 @@
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Checks script, files and folders ownership and permissions.
# Description: Checks ownership & permissions of scripts, files and folders.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_check_ownership(){
if [ $(find "${filesdir}" -not -user $(whoami)|wc -l) -ne "0" ]||[ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fatal "Permissions issues found"
fn_print_infomation_nl "The current user ($(whoami)) does not have ownership of the following files:"
fn_script_log_info "The current user ($(whoami)) does not have ownership of the following files:"
{
echo -e "User\tGroup\tFile\n"
find "${filesdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
} | column -s $'\t' -t | tee -a "${scriptlog}"
core_exit.sh
if [ -d "${filesdir}" ]; then
if [ $(find "${filesdir}" -not -user $(whoami)|wc -l) -ne "0" ]||[ $(find "${rootdir}/${selfname}" -not -user $(whoami)|wc -l) -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fatal "Permissions issues found"
fn_print_infomation_nl "The current user ($(whoami)) does not have ownership of the following files:"
fn_script_log_info "The current user ($(whoami)) does not have ownership of the following files:"
{
echo -e "User\tGroup\tFile\n"
find "${filesdir}" -not -user $(whoami) -printf "%u\t\t%g\t%p\n"
} | column -s $'\t' -t | tee -a "${scriptlog}"
core_exit.sh
fi
fi
}
fn_check_permissions(){
if [ -n "${functionsdir}" ]; then
if [ -d "${functionsdir}" ]; then
if [ $(find "${functionsdir}" -type f -not -executable|wc -l) -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fatal "Permissions issues found"
@ -56,4 +58,4 @@ fn_check_permissions(){
}
fn_check_ownership
fn_check_permissions
fn_check_permissions

1
lgsm/functions/check_root.sh

@ -2,6 +2,7 @@
# LGSM check_root.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks if the user tried to run the script as root.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

15
lgsm/functions/check_status.sh

@ -1,13 +1,14 @@
#!/bin/bash
# LGSM check_status.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Checks the proccess status of the server. Either online or offline.
# Description: Checks the process status of the server. Either online or offline.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
if [ "${gamename}" == "Teamspeak 3" ]; then
if [ "${gamename}" == "TeamSpeak 3" ]; then
# 1: Server is running
# 0: Server seems to have died
# 0: No server running (ts3server.pid is missing)
@ -18,6 +19,16 @@ if [ "${gamename}" == "Teamspeak 3" ]; then
ts3error="${status}"
status=0
fi
elif [ "${gamename}" == "Mumble" ]; then
# 1: Server is listening
# 0: Server is not listening, considered closed
mumblepid=$(netstat -nap 2>/dev/null | grep udp | grep 64738 | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
if [ -z "${mumblepid}" ]; then
status=0
else
status=1
fi
else
status=$(tmux list-sessions 2>&1 | awk '{print $1}' | grep -Ec "^${servicename}:")
fi

9
lgsm/functions/check_steamcmd.sh

@ -2,7 +2,7 @@
# LGSM check_steamcmd.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks SteamCMD is installed and correct.
# Description: Checks if SteamCMD is installed correctly.
local commandname="CHECK"
@ -15,9 +15,8 @@ fn_install_steamcmd(){
chmod +x "${steamcmddir}/steamcmd.sh"
}
fn_check_steamcmd_user(){
# Checks steamuser is setup.
# Checks if steamuser is setup.
if [ "${steamuser}" == "username" ]; then
fn_print_fail_nl "Steam login not set. Update steamuser in ${selfname}."
echo " * Change steamuser=\"username\" to a valid steam login."
@ -59,7 +58,7 @@ fn_check_steamcmd_sh(){
fn_check_steamcmd_guard(){
if [ "${function_selfname}" == "command_update.sh" ]||[ "${function_selfname}" == "command_validate.sh" ]; then
# Checks that steamcmd is working correctly and will prompt Steam Guard if required.
# 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_print_failure_nl "Error running SteamCMD"
@ -69,5 +68,5 @@ fn_check_steamcmd_guard(){
fn_check_steamcmd_user
fn_check_steamcmd_sh
# stdbuf has now replaced unbuffer. This shoudl no longer be required
# stdbuf has now replaced unbuffer. This should not longer be required.
#fn_check_steamcmd_guard

1
lgsm/functions/check_system_dir.sh

@ -2,6 +2,7 @@
# LGSM check_system_dir.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks if systemdir is accessible.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

13
lgsm/functions/check_system_requirements.sh

@ -16,13 +16,20 @@ if [ "${gamename}" == "Rust" ]; then
ramrequirementgb="4"
fi
if [ "${gamename}" == "ARMA 3" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
fi
# If the game or engine has a minimum RAM Requirement, compare it to system's available RAM.
if [ -n "${ramrequirement}" ]; then
if [ -n "${ramrequirementmb}" ]; then
if [ "${physmemtotalmb}" -lt "${ramrequirementmb}" ]; then
fn_print_dots "Check RAM"
sleep 0.5
# Warn the user
fn_print_warn "Insufficient memory: ${ramrequirementgb}G required, ${physmemtotal} available"
fn_print_warn_nl "Check RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
sleep 1
fn_print_warning "You may experiance poor performance from your server"
echo " * ${gamename} server may fail to run or experience poor performance."
sleep 1
fi
fi

21
lgsm/functions/check_tmux.sh

@ -1,21 +0,0 @@
#!/bin/bash
# LGSM check_tmux.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Checks if tmux is installed as too many users do not RTFM or know how to use Google.
local commandname="CHECK"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
if [ "$(command -v tmux)" ]||[ "$(which tmux >/dev/null 2>&1)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
:
else
fn_print_fail_nl "Tmux not installed"
sleep 1
fn_script_log_fatal "Tmux is not installed"
echo " * Tmux is required to run this server."
# Suitable passive agressive message
echo " * Please see the the following link."
echo " * https://gameservermanagers.com/tmux-not-found"
core_exit.sh
fi

4
lgsm/functions/command_backup.sh

@ -47,7 +47,7 @@ if [ ! -d "${backupdir}" ]; then
mkdir "${backupdir}"
fi
tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "backups" ./*
if [ $? != 0 ]; then
if [ $? == 0 ]; then
fn_print_ok_nl "Backup created: ${backupname}.tar.gz is $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}') size"
fn_script_log_pass "Backup created: ${backupdir}/${backupname}.tar.gz is $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}') size"
else
@ -56,4 +56,4 @@ else
fi
sleep 1
echo ""
core_exit.sh
core_exit.sh

4
lgsm/functions/command_debug.sh

@ -2,7 +2,7 @@
# LGSM command_debug.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Runs the server without tmux. Runs direct from the terminal.
# Description: Runs the server without tmux and directly from the terminal.
local commandname="DEBUG"
local commandaction="Debug"
@ -28,7 +28,7 @@ echo ""
echo "${gamename} Debug"
echo "================================="
echo ""
echo -e "Distro: ${os}"
echo -e "Distro: ${distroname}"
echo -e "Arch: ${arch}"
echo -e "Kernel: ${kernel}"
echo -e "Hostname: $HOSTNAME"

25
lgsm/functions/command_details.sh

@ -1,6 +1,7 @@
#!/bin/bash
# LGSM command_details.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Displays server infomation.
@ -26,7 +27,7 @@ fn_details_os(){
echo -e "${lightyellow}Distro Details${default}"
printf '%*s\n' "${COLUMNS:-$(tput cols)}" '' | tr ' ' =
{
echo -e "${blue}Distro:\t${default}${os}"
echo -e "${blue}Distro:\t${default}${distroname}"
echo -e "${blue}Arch:\t${default}${arch}"
echo -e "${blue}Kernel:\t${default}${kernel}"
echo -e "${blue}Hostname:\t${default}$HOSTNAME"
@ -43,7 +44,7 @@ fn_details_performance(){
# Avg Load: 1.00, 1.01, 0.78
#
# Mem: total used free cached
# Physical: 741M 656M 85M 256M
# Physical: 741M 656M 85M 256M
# Swap: 0B 0B 0B
echo -e ""
@ -150,7 +151,7 @@ fn_details_gameserver(){
echo -e "${blue}Tick rate:\t${default}${tickrate}"
fi
# Teamspeak dbplugin
# TeamSpeak dbplugin
if [ -n "${dbplugin}" ]; then
echo -e "${blue}dbplugin:\t${default}${dbplugin}"
fi
@ -286,7 +287,7 @@ fn_details_ports(){
echo -e "Change ports by editing the parameters in:"
parmslocation="${red}UNKNOWN${default}"
local ports_edit_array=( "avalanche" "dontstarve" "projectzomboid" "idtech3" "realvirtuality" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "Teamspeak 3" "7 Days To Die" )
local ports_edit_array=( "avalanche" "dontstarve" "projectzomboid" "idtech3" "realvirtuality" "seriousengine35" "teeworlds" "terraria" "unreal" "unreal2" "TeamSpeak 3" "Mumble" "7 Days To Die" )
for port_edit in "${ports_edit_array[@]}"
do
if [ "${engine}" == "${port_edit}" ]||[ "${gamename}" == "${port_edit}" ]; then
@ -441,6 +442,16 @@ fn_details_teamspeak3(){
} | column -s $'\t' -t
}
fn_details_mumble(){
echo -e "netstat -atunp | grep murmur"
echo -e ""
{
echo -e "DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL"
echo -e "> Voice\tINBOUND\t${port}\tudp"
echo -e "> ServerQuery\tINBOUND\t${port}\ttcp"
} | column -s $'\t' -t
}
fn_details_teeworlds(){
echo -e "netstat -atunp | grep teeworlds_srv"
echo -e ""
@ -569,7 +580,7 @@ fn_details_gameserver
fn_details_script
fn_details_backup
# Some game servers do not have parms.
if [ "${gamename}" != "Teamspeak 3" ]&&[ "${engine}" != "avalanche" ]&&[ "${engine}" != "dontstarve" ]&&[ "${engine}" != "projectzomboid" ]; then
if [ "${gamename}" != "TeamSpeak 3" ]&&[ "${engine}" != "avalanche" ]&&[ "${engine}" != "dontstarve" ]&&[ "${engine}" != "projectzomboid" ]; then
fn_parms
fn_details_commandlineparms
fi
@ -606,8 +617,10 @@ elif [ "${gamename}" == "Hurtworld" ]; then
fn_details_hurtworld
elif [ "${gamename}" == "7 Days To Die" ]; then
fn_details_sdtd
elif [ "${gamename}" == "Teamspeak 3" ]; then
elif [ "${gamename}" == "TeamSpeak 3" ]; then
fn_details_teamspeak3
elif [ "${gamename}" == "Mumble" ]; then
fn_details_mumble
elif [ "${gamename}" == "Rust" ]; then
fn_details_rust
else

2
lgsm/functions/command_dev_debug.sh

@ -2,7 +2,7 @@
# LGSM command_dev_debug.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Dev only: enables debuging log to be saved to dev-debug.log.
# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
local commandname="DEV-DEBUG"
local commandaction="Dev-Debug"

96
lgsm/functions/command_dev_detect_deps.sh

@ -42,62 +42,62 @@ 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"
${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${lgsmdir}/tmp/.depdetect_readelf"
echo "yum install " > "${rootdir}/.depdetect_centos_list_uniq"
echo "apt-get install " > "${rootdir}/.depdetect_ubuntu_list_uniq"
echo "apt-get install " > "${rootdir}/.depdetect_debian_list_uniq"
echo "yum install " > "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
echo "apt-get install " > "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq"
echo "apt-get install " > "${lgsmdir}/tmp/.depdetect_debian_list_uniq"
while read lib; do
sharedlib=${lib}
if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libpthread.so.0" ]||[ "${lib}" == "libdl.so.2" ]||[ "${lib}" == "libnsl.so.1" ]||[ "${lib}" == "libgcc_s.so.1" ]||[ "${lib}" == "librt.so.1" ]||[ "${lib}" == "ld-linux.so.2" ]; then
echo "glibc.i686" >> "${rootdir}/.depdetect_centos_list"
echo "lib32gcc1" >> "${rootdir}/.depdetect_ubuntu_list"
echo "lib32gcc1" >> "${rootdir}/.depdetect_debian_list"
echo "glibc.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
echo "lib32gcc1" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
echo "lib32gcc1" >> "${lgsmdir}/tmp/.depdetect_debian_list"
elif [ "${lib}" == "libstdc++.so.6" ]; then
echo "libstdc++.i686" >> "${rootdir}/.depdetect_centos_list"
echo "libstdc++6:i386" >> "${rootdir}/.depdetect_ubuntu_list"
echo "libstdc++6:i386" >> "${rootdir}/.depdetect_debian_list"
echo "libstdc++.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
echo "libstdc++6:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
echo "libstdc++6:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
elif [ "${lib}" == "libstdc++.so.5" ]; then
echo "compat-libstdc++-33.i686" >> "${rootdir}/.depdetect_centos_list"
echo "libstdc++5:i386" >> "${rootdir}/.depdetect_ubuntu_list"
echo "libstdc++5:i386" >> "${rootdir}/.depdetect_debian_list"
echo "compat-libstdc++-33.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
echo "libstdc++5:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
echo "libstdc++5:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then
echo "speex.i686" >> "${rootdir}/.depdetect_centos_list"
echo "speex:i386" >> "${rootdir}/.depdetect_ubuntu_list"
echo "speex:i386" >> "${rootdir}/.depdetect_debian_list"
echo "speex.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
echo "speex:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
echo "speex:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
elif [ "${lib}" == "./libSDL-1.2.so.0" ]||[ "${lib}" == "libSDL-1.2.so.0" ]; then
echo "SDL.i686" >> "${rootdir}/.depdetect_centos_list"
echo "libsdl1.2debian" >> "${rootdir}/.depdetect_ubuntu_list"
echo "libsdl1.2debian" >> "${rootdir}/.depdetect_debian_list"
echo "SDL.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
echo "libsdl1.2debian" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
echo "libsdl1.2debian" >> "${lgsmdir}/tmp/.depdetect_debian_list"
elif [ "${lib}" == "libtbb.so.2" ]; then
echo "tbb.i686" >> "${rootdir}/.depdetect_centos_list"
echo "libtbb2" >> "${rootdir}/.depdetect_ubuntu_list"
echo "libtbb2" >> "${rootdir}/.depdetect_debian_list"
echo "tbb.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
echo "libtbb2" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
echo "libtbb2" >> "${lgsmdir}/tmp/.depdetect_debian_list"
elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "Editor.so" ]||[ "${lib}" == "Engine.so" ]||[ "${lib}" == "liblua.so" ]||[ "${lib}" == "libsteam_api.so" ]||[ "${lib}" == "ld-linux-x86-64.so.2" ]||[ "${lib}" == "libPhysX3_x86.so" ]||[ "${lib}" == "libPhysX3Common_x86.so" ]||[ "${lib}" == "libPhysX3Cooking_x86.so" ]; then
# Known shared libs what dont requires dependencies
:
else
unknownlib=1
echo "${lib}" >> "${rootdir}/.depdetect_unknown"
echo "${lib}" >> "${lgsmdir}/tmp/.depdetect_unknown"
fi
done < "${rootdir}/.depdetect_readelf"
sort "${rootdir}/.depdetect_centos_list" | uniq >> "${rootdir}/.depdetect_centos_list_uniq"
sort "${rootdir}/.depdetect_ubuntu_list" | uniq >> "${rootdir}/.depdetect_ubuntu_list_uniq"
sort "${rootdir}/.depdetect_debian_list" | uniq >> "${rootdir}/.depdetect_debian_list_uniq"
done < "${lgsmdir}/tmp/.depdetect_readelf"
sort "${lgsmdir}/tmp/.depdetect_centos_list" | uniq >> "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
sort "${lgsmdir}/tmp/.depdetect_ubuntu_list" | uniq >> "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq"
sort "${lgsmdir}/tmp/.depdetect_debian_list" | uniq >> "${lgsmdir}/tmp/.depdetect_debian_list_uniq"
if [ "${unknownlib}" == "1" ]; then
sort "${rootdir}/.depdetect_unknown" | uniq >> "${rootdir}/.depdetect_unknown_uniq"
sort "${lgsmdir}/tmp/.depdetect_unknown" | uniq >> "${lgsmdir}/tmp/.depdetect_unknown_uniq"
fi
awk -vORS=' ' '{ print $1, $2 }' "${rootdir}/.depdetect_centos_list_uniq" > "${rootdir}/.depdetect_centos_line"
awk -vORS=' ' '{ print $1, $2 }' "${rootdir}/.depdetect_ubuntu_list_uniq" > "${rootdir}/.depdetect_ubuntu_line"
awk -vORS=' ' '{ print $1, $2 }' "${rootdir}/.depdetect_debian_list_uniq" > "${rootdir}/.depdetect_debian_line"
awk -vORS=' ' '{ print $1, $2 }' "${lgsmdir}/tmp/.depdetect_centos_list_uniq" > "${lgsmdir}/tmp/.depdetect_centos_line"
awk -vORS=' ' '{ print $1, $2 }' "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq" > "${lgsmdir}/tmp/.depdetect_ubuntu_line"
awk -vORS=' ' '{ print $1, $2 }' "${lgsmdir}/tmp/.depdetect_debian_list_uniq" > "${lgsmdir}/tmp/.depdetect_debian_line"
echo ""
echo "Required Dependencies"
@ -106,46 +106,46 @@ echo "${executable}"
echo ""
echo "CentOS"
echo "================================="
cat "${rootdir}/.depdetect_centos_line"
cat "${lgsmdir}/tmp/.depdetect_centos_line"
echo ""
echo ""
echo "Ubuntu"
echo "================================="
cat "${rootdir}/.depdetect_ubuntu_line"
cat "${lgsmdir}/tmp/.depdetect_ubuntu_line"
echo ""
echo ""
echo "Debian"
echo "================================="
cat "${rootdir}/.depdetect_debian_line"
cat "${lgsmdir}/tmp/.depdetect_debian_line"
echo ""
if [ "${unknownlib}" == "1" ]; then
echo ""
echo "Unknown shared Library"
echo "================================="
cat "${rootdir}/.depdetect_unknown"
cat "${lgsmdir}/tmp/.depdetect_unknown"
fi
echo ""
echo "Required Librarys"
echo "================================="
sort "${rootdir}/.depdetect_readelf" |uniq
sort "${lgsmdir}/tmp/.depdetect_readelf" |uniq
echo ""
echo "ldd"
echo "================================="
ldd ${executable}
echo -en "\n"
rm -f "${rootdir}/.depdetect_centos_line"
rm -f "${rootdir}/.depdetect_centos_list"
rm -f "${rootdir}/.depdetect_centos_list_uniq"
rm -f "${lgsmdir}/tmp/.depdetect_centos_line"
rm -f "${lgsmdir}/tmp/.depdetect_centos_list"
rm -f "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
rm -f "${rootdir}/.depdetect_debian_line"
rm -f "${rootdir}/.depdetect_debian_list"
rm -f "${rootdir}/.depdetect_debian_list_uniq"
rm -f "${lgsmdir}/tmp/.depdetect_debian_line"
rm -f "${lgsmdir}/tmp/.depdetect_debian_list"
rm -f "${lgsmdir}/tmp/.depdetect_debian_list_uniq"
rm -f "${rootdir}/.depdetect_ubuntu_line"
rm -f "${rootdir}/.depdetect_ubuntu_list"
rm -f "${rootdir}/.depdetect_ubuntu_list_uniq"
rm -f "${lgsmdir}/tmp/.depdetect_ubuntu_line"
rm -f "${lgsmdir}/tmp/.depdetect_ubuntu_list"
rm -f "${lgsmdir}/tmp/.depdetect_ubuntu_list_uniq"
rm -f "${rootdir}/.depdetect_readelf"
rm -f "${lgsmdir}/tmp/.depdetect_readelf"
rm -f "${rootdir}/.depdetect_unknown"
rm -f "${rootdir}/.depdetect_unknown_uniq"
rm -f "${lgsmdir}/tmp/.depdetect_unknown"
rm -f "${lgsmdir}/tmp/.depdetect_unknown_uniq"

31
lgsm/functions/command_dev_detect_glibc.sh

@ -0,0 +1,31 @@
#!/bin/bash
# command_dev_detect_glibc.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Automatically detects the version of GLIBC that is required.
# Can check a file or directory recursively.
echo "================================="
echo "GLIBC Requirements Checker"
echo "================================="
if [ -z "${filesdir}" ]; then
dir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
fi
if [ -d "${filesdir}" ]; then
echo "Checking directory: "
echo "${filesdir}"
elif [ -f "${filesdir}" ]; then
echo "Checking file: "
echo "${filesdir}"
fi
echo ""
find ${filesdir} -type f -print0 |
while IFS= read -r -d $'\0' line; do
objdump -T $line 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${lgsmdir}/tmp/detect_glibc.tmp"
done
cat "${lgsmdir}/tmp/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
rm "${lgsmdir}/tmp/detect_glibc.tmp"

8
lgsm/functions/command_fastdl.sh

@ -3,7 +3,7 @@
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Creates a FastDL folder
# Description: Creates a FastDL folder.
local commandname="FASTDL"
local commandaction="FastDL"
@ -305,15 +305,15 @@ fn_fastdl_bzip2(){
fn_fastdl_completed(){
# Finished message
echo ""
fn_print_ok "Congratulations, it's done !"
fn_print_ok "Congratulations, it's done!"
fn_script_log "FastDL job done"
sleep 2
echo -en "\n"
echo ""
fn_print_info "Need more doc ? See https://github.com/dgibbs64/linuxgsm/wiki/FastDL"
fn_print_info "Need more documentation? See https://github.com/dgibbs64/linuxgsm/wiki/FastDL"
echo -en "\n"
if [ "$bzip2installed" == "0" ]; then
echo "By the way, you'd better install bzip2 an re-run this command !"
echo "By the way, you'd better install bzip2 and re-run this command!"
fi
echo "Credits : UltimateByte"
}

7
lgsm/functions/command_install.sh

@ -1,6 +1,7 @@
#!/bin/bash
# LGSM command_install.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Overall function for the installer.
@ -17,7 +18,7 @@ check_deps.sh
if [ "${gamename}" == "Unreal Tournament 2004" ]; then
install_server_files.sh
install_ut2k4_key.sh
elif [ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "Teamspeak 3" ]; then
elif [ "${gamename}" == "Unreal Tournament 99" ]||[ "${gamename}" == "TeamSpeak 3" ]||[ "${gamename}" == "Mumble" ]; then
installer=1
install_server_files.sh
elif [ -n "${appid}" ]; then
@ -29,10 +30,10 @@ fi
install_config.sh
if [ "${gamename}" == "Counter Strike: Global Offensive" ]||[ "${gamename}" == "Team Fortress 2" ]||[ "${gamename}" == "BrainBread 2" ]; then
install_gslt.sh
elif [ "${gamename}" == "Teamspeak 3" ]; then
elif [ "${gamename}" == "TeamSpeak 3" ]; then
install_ts3db.sh
fi
fix.sh
install_complete.sh
core_exit.sh
core_exit.sh

26
lgsm/functions/command_monitor.sh

@ -1,8 +1,9 @@
#!/bin/bash
# LGSM command_monitor.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Monitors server by checking for running proccesses
# Description: Monitors server by checking for running processes.
# then passes to monitor_gsquery.sh.
local commandname="MONITOR"
@ -54,6 +55,23 @@ fn_monitor_teamspeak3(){
fi
}
fn_monitor_mumble(){
if [ "${status}" != "0" ]; then
fn_print_ok "Checking session: "
fn_print_ok_eol_nl
fn_script_log_pass "Checking session: OK"
else
fn_print_error "Checking session: Not listening to port ${port}"
fn_print_fail_eol_nl
fn_script_log_error "Checking session: Not listening to port ${port}"
failurereason="Checking session: Not listening to port ${port}"
alert="restart"
alert.sh
fn_script_log_info "Monitor is starting ${servername}"
sleep 1
command_restart.sh
fi
}
fn_monitor_tmux(){
# checks that tmux session is running
if [ "${status}" != "0" ]; then
@ -90,9 +108,11 @@ info_config.sh
fn_monitor_check_lockfile
fn_monitor_check_update
fn_monitor_msg_checking
if [ "${gamename}" == "Teamspeak 3" ]; then
if [ "${gamename}" == "TeamSpeak 3" ]; then
fn_monitor_teamspeak3
elif [ "${gamename}" == "Mumble" ]; then
fn_monitor_mumble
else
fn_monitor_tmux
fi
core_exit.sh
core_exit.sh

4
lgsm/functions/command_restart.sh

@ -1,8 +1,8 @@
#!/bin/bash
# LGSM command_start.sh function
# LGSM command_restart.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Starts the server.
# Description: Restarts the server.
local commandname="RESTART"
local commandaction="Restarting"

5
lgsm/functions/command_start.sh

@ -1,6 +1,7 @@
#!/bin/bash
# LGSM command_start.sh function
# Author: Daniel Gibbs
# Contributor: UltimateByte
# Website: https://gameservermanagers.com
# Description: Starts the server.
@ -177,9 +178,9 @@ if [ "${status}" == "0" ]; then
fi
fi
if [ "${gamename}" == "Teamspeak 3" ]; then
if [ "${gamename}" == "TeamSpeak 3" ]; then
fn_start_teamspeak3
else
fn_start_tmux
fi
core_exit.sh
core_exit.sh

32
lgsm/functions/command_stop.sh

@ -1,6 +1,7 @@
#!/bin/bash
# LGSM command_stop.sh function
# Author: Daniel Gibbs
# Contributors: UltimateByte
# Website: https://gameservermanagers.com
# Description: Stops the server.
@ -208,7 +209,24 @@ fn_stop_teamspeak3(){
fn_script_log_pass "Stopped ${servername}"
else
fn_print_fail_nl "Unable to stop ${servername}"
fn_script_log_fail "Unable to stop ${servername}"
fn_script_log_error "Unable to stop ${servername}"
fi
}
fn_stop_mumble(){
fn_print_dots "Stopping ${servername}"
mumblepid=$(netstat -nap 2>/dev/null | grep udp | grep 64738 | grep murmur | awk '{ print $6 }' | awk -F'/' '{ print $1 }')
kill ${mumblepid}
sleep 1
check_status.sh
if [ "${status}" == "0" ]; then
# Remove lock file
rm -f "${rootdir}/${lockselfname}"
fn_stop_tmux
fn_script_log_pass "Stopped ${servername}"
else
fn_print_fail_nl "Unable to stop ${servername}"
fn_script_log_error "Unable to stop ${servername}"
fi
}
@ -239,7 +257,7 @@ fn_stop_tmux(){
# checks if the server is already stopped before trying to stop.
fn_stop_pre_check(){
if [ "${gamename}" == "Teamspeak 3" ]; then
if [ "${gamename}" == "TeamSpeak 3" ]; then
check_status.sh
if [ "${status}" == "0" ]; then
fn_print_info_nl "${servername} is already stopped"
@ -247,8 +265,14 @@ fn_stop_pre_check(){
else
fn_stop_teamspeak3
fi
elif [ "${gamename}" == "Mumble" ]; then
if [ "${status}" == "0" ]; then
fn_print_info_nl "${servername} is already stopped"
fn_script_log_error "${servername} is already stopped"
else
fn_stop_mumble
fi
else
check_status.sh
if [ "${status}" == "0" ]; then
fn_print_info_nl "${servername} is already stopped"
fn_script_log_error "${servername} is already stopped"
@ -263,4 +287,4 @@ sleep 1
check.sh
info_config.sh
fn_stop_pre_check
core_exit.sh
core_exit.sh

2
lgsm/functions/command_test_alert.sh

@ -2,7 +2,7 @@
# LGSM command_test_alert.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: Sends a test email alert.
# Description: Sends a test alert.
local commandname="ALERT"
local commandaction="Alert"

2
lgsm/functions/command_ts3_server_pass.sh

@ -3,7 +3,7 @@
# Author: Daniel Gibbs
# Contributor : UltimateByte
# Website: https://gameservermanagers.com
# Description: Changes TS3 serveradmin password
# Description: Changes TS3 serveradmin password.
local commandname="TS3-CHANGE-PASS"
local commandaction="TS3 Change Password"

6
lgsm/functions/command_update.sh

@ -13,10 +13,12 @@ sleep 0.5
check.sh
if [ "${gamename}" == "Teamspeak 3" ]; then
if [ "${gamename}" == "TeamSpeak 3" ]; then
update_ts3.sh
elif [ "${gamename}" == "Mumble" ]; then
update_mumble.sh
else
update_steamcmd.sh
fi
core_exit.sh
core_exit.sh

4
lgsm/functions/command_update_functions.sh

@ -13,7 +13,7 @@ check.sh
fn_script_log_info "Updating functions"
echo -ne "\n"
# Removed legecy functions dir
# Removed legacy functions dir
if [ -n "${rootdir}" ]; then
if [ -d "${rootdir}/functions/" ]; then
rm -rfv "${rootdir}/functions/"
@ -26,7 +26,7 @@ if [ -n "${functionsdir}" ]; then
cd "${functionsdir}"
for functionfile in *
do
# Check curl exists and use available path
# Check if 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

18
lgsm/functions/command_validate.sh

@ -19,14 +19,14 @@ fn_validation(){
cd "${rootdir}/steamcmd"
if [ $(command -v stdbuf) ]; then
if [ $(command -v stdbuf) ]; then
unbuffer="stdbuf -i0 -o0 -e0"
fi
if [ "${engine}" == "goldsource" ]; then
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" +app_update "${appid}" validate +quit| tee -a "${scriptlog}"
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +app_update "${appid}" ${branch} validate +quit| tee -a "${scriptlog}"
else
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" validate +quit| tee -a "${scriptlog}"
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} validate +quit| tee -a "${scriptlog}"
fi
if [ $? != 0 ]; then
fn_print_fail_nl "Validating files: SteamCMD"
@ -39,7 +39,7 @@ fn_validation(){
}
fn_print_dots_nl "Validating files:"
fn_print_dots "Validating files:"
sleep 0.5
fn_print_dots_nl "Validating files: SteamCMD"
sleep 1
@ -47,11 +47,11 @@ check.sh
check_status.sh
if [ "${status}" != "0" ]; then
exitbypass=1
command_stop.sh
fn_validation
exitbypass=1
command_start.sh
command_stop.sh
fn_validation
exitbypass=1
command_start.sh
else
fn_validation
fn_validation
fi
core_exit.sh

2
lgsm/functions/compress_unreal2_maps.sh

@ -2,7 +2,7 @@
# LGSM compress_unreal2_maps.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: compresses unreal maps
# Description: Compresses unreal maps.
local commandaction="Unreal Map Compressor"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

2
lgsm/functions/compress_ut99_maps.sh

@ -2,7 +2,7 @@
# LGSM compress_ut99_maps.sh function
# Author: Daniel Gibbs
# Website: https://gameservermanagers.com
# Description: compresses unreal maps
# Description: Compresses unreal maps.
local commandaction="Unreal Map Compressor"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save