Browse Source

Merge branch 'release/170430'

pull/1430/head 170430
Daniel Gibbs 8 years ago
parent
commit
c0768c89ff
  1. 2
      7DaysToDie/sdtdserver
  2. 2
      ARKSurvivalEvolved/arkserver
  3. 2
      Arma3/arma3server
  4. 2
      BallisticOverkill/boserver
  5. 2
      Battlefield1942/bf1942server
  6. 2
      BlackMesa/bmdmserver
  7. 2
      BladeSymphony/bsserver
  8. 2
      BrainBread2/bb2server
  9. 2
      CallOfDuty/codserver
  10. 2
      CallOfDuty2/cod2server
  11. 2
      CallOfDuty4/cod4server
  12. 2
      CallOfDutyUnitedOffensive/coduoserver
  13. 2
      CallOfDutyWorldAtWar/codwawserver
  14. 228
      ClassicOffensive/coserver
  15. 2
      CodenameCURE/ccserver
  16. 2
      CounterStrike/csserver
  17. 2
      CounterStrikeConditionZero/csczserver
  18. 2
      CounterStrikeGlobalOffensive/csgoserver
  19. 2
      CounterStrikeSource/cssserver
  20. 2
      DayOfDefeat/dodserver
  21. 2
      DayOfDefeatSource/dodsserver
  22. 2
      DayOfInfamy/doiserver
  23. 2
      DeathmatchClassic/dmcserver
  24. 2
      DontStarveTogether/dstserver
  25. 2
      DoubleActionBoogaloo/dabserver
  26. 2
      EmpiresMod/emserver
  27. 2
      Factorio/fctrserver
  28. 2
      FistfulOfFrags/fofserver
  29. 2
      GarrysMod/gmodserver
  30. 2
      GoldenEyeSource/gesserver
  31. 2
      HalfLife2Deathmatch/hl2dmserver
  32. 2
      HalfLifeDeathmatch/hldmserver
  33. 2
      HalfLifeDeathmatchSource/hldmsserver
  34. 2
      Hurtworld/hwserver
  35. 2
      Insurgency/insserver
  36. 2
      JustCause2/jc2server
  37. 2
      KillingFloor/kfserver
  38. 2
      Left4Dead/l4dserver
  39. 2
      Left4Dead2/l4d2server
  40. 2
      Minecraft/mcserver
  41. 4
      MultiTheftAuto/mtaserver
  42. 2
      Mumble/mumbleserver
  43. 2
      NS2Combat/ns2cserver
  44. 2
      NaturalSelection2/ns2server
  45. 2
      NoMoreRoomInHell/nmrihserver
  46. 2
      OpposingForce/opforserver
  47. 2
      PiratesVikingandKnightsII/pvkiiserver
  48. 2
      ProjectCars/pcserver
  49. 2
      ProjectZomboid/pzserver
  50. 2
      Quake2/q2server
  51. 2
      Quake3/q3server
  52. 2
      QuakeLive/qlserver
  53. 2
      QuakeWorld/qwserver
  54. 1
      README.md
  55. 2
      RedOrchestra/roserver
  56. 2
      Ricochet/ricochetserver
  57. 2
      Rust/rustserver
  58. 2
      SeriousSam3BFE/ss3sserver
  59. 2
      Starbound/sbserver
  60. 2
      SvenCoop/svenserver
  61. 2
      TeamFortress2/tf2server
  62. 2
      TeamFortressClassic/tfcserver
  63. 2
      TeamSpeak3/ts3server
  64. 2
      Teeworlds/twserver
  65. 2
      Terraria/terrariaserver
  66. 2
      TowerUnite/tuserver
  67. 2
      UnrealTournament/utserver
  68. 2
      UnrealTournament2004/ut2k4server
  69. 2
      UnrealTournament3/ut3server
  70. 2
      UnrealTournament99/ut99server
  71. 2
      WolfensteinEnemyTerritory/wetserver
  72. 26
      lgsm/functions/alert_pushbullet.sh
  73. 30
      lgsm/functions/check_deps.sh
  74. 85
      lgsm/functions/command_dev_detect_deps.sh
  75. 19
      lgsm/functions/command_dev_detect_glibc.sh
  76. 2
      lgsm/functions/command_fastdl.sh
  77. 29
      lgsm/functions/command_start.sh
  78. 2
      lgsm/functions/command_stop.sh
  79. 11
      lgsm/functions/command_validate.sh
  80. 6
      lgsm/functions/fix_glibc.sh
  81. 40
      lgsm/functions/gsquery.py
  82. 10
      lgsm/functions/info_distro.sh
  83. 20
      lgsm/functions/info_glibc.sh
  84. 6
      lgsm/functions/install_config.sh
  85. 14
      lgsm/functions/install_server_files.sh
  86. 12
      lgsm/functions/update_steamcmd.sh
  87. 2
      tests/tests_jc2server.sh
  88. 2
      tests/tests_ts3server.sh

2
7DaysToDie/sdtdserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
ARKSurvivalEvolved/arkserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Arma3/arma3server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
BallisticOverkill/boserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Battlefield1942/bf1942server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
BlackMesa/bmdmserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
BladeSymphony/bsserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
BrainBread2/bb2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CallOfDuty/codserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CallOfDuty2/cod2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CallOfDuty4/cod4server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CallOfDutyUnitedOffensive/coduoserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CallOfDutyWorldAtWar/codwawserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

228
ClassicOffensive/coserver

@ -0,0 +1,228 @@
#!/bin/bash
# Project: Game Server Managers - LinuxGSM
# Author: Daniel Gibbs
# License: MIT License, Copyright (c) 2017 Daniel Gibbs
# Purpose: Classic Offensive | Server Management Script
# Contributors: https://github.com/GameServerManagers/LinuxGSM/graphs/contributors
# Documentation: https://github.com/GameServerManagers/LinuxGSM/wiki
# Website: https://gameservermanagers.com
# Debugging
if [ -f ".dev-debug" ]; then
exec 5>dev-debug.log
BASH_XTRACEFD="5"
set -x
fi
version="170530"
##########################
######## Settings ########
##########################
#### Server Settings ####
## Server Start Settings | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters
# https://developer.valvesoftware.com/wiki/Counter-Strike:_Global_Offensive_Dedicated_Servers#Starting_the_Server
# [Game Modes] gametype gamemode
# Arms Race 1 0
# Classic Casual 0 0
# Classic Competitive 0 1
# Demolition 1 1
# Deathmatch 1 2
gametype="0"
gamemode="0"
defaultmap="de_mirage"
mapgroup="mg_active"
maxplayers="16"
tickrate="64"
port="27015"
sourcetvport="27020"
clientport="27005"
ip="0.0.0.0"
## Required: Game Server Login Token
# GSLT is required for running a public server.
# More info: https://gameservermanagers.com/gslt
gslt=""
## Optional: Workshop Parameters
# https://developer.valvesoftware.com/wiki/CSGO_Workshop_For_Server_Operators
# To get an authkey visit - http://steamcommunity.com/dev/apikey
# authkey=""
# ws_collection_id=""
# ws_start_map=""
## Server Start Command | https://github.com/GameServerManagers/LinuxGSM/wiki/Start-Parameters#additional-parameters
fn_parms(){
parms="-game csco -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_mode ${gamemode} +game_type ${gametype} +host_workshop_collection ${ws_collection_id} +workshop_start_map ${ws_start_map} -authkey ${authkey}"
}
#### LinuxGSM Settings ####
## Notification Alerts
# (on|off)
# Email Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Email
emailalert="off"
email="[email protected]"
emailfrom=""
# Pushbullet Alerts | https://github.com/GameServerManagers/LinuxGSM/wiki/Pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""
## Updating | https://github.com/GameServerManagers/LinuxGSM/wiki/Update
updateonstart="off"
## Backup | https://github.com/GameServerManagers/LinuxGSM/wiki/Backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://github.com/GameServerManagers/LinuxGSM/wiki/Logging
consolelogging="on"
logdays="7"
#### LinuxGSM Advanced Settings ####
## SteamCMD Settings
# Server appid
appid="740"
appid_co="600380"
# Steam App Branch Select
# Allows to opt into the various Steam app branches. Default branch is "".
# Example: "-beta latest_experimental"
branch=""
## SteamCMD Login | https://github.com/GameServerManagers/LinuxGSM/wiki/SteamCMD#steamcmd-login
steamuser="accountname"
steampass='accountpassword'
## Github Branch Select
# Allows for the use of different function files
# from a different repo and/or branch.
githubuser="GameServerManagers"
githubrepo="LinuxGSM"
githubbranch="master"
## LinuxGSM Server Details
# Do not edit
gamename="Classic Offensive"
engine="source"
## Service Name | https://github.com/GameServerManagers/LinuxGSM/wiki/Multiple-Servers
servicename="co-server"
#### Directories ####
# Edit with care
## Work 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"
tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
## Server Specific Directories
systemdir="${filesdir}/csco"
executabledir="${filesdir}"
executable="./srcds_run"
servercfg="${servicename}.cfg"
servercfgdefault="server.cfg"
servercfgdir="${systemdir}/cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${rootdir}/backups"
## Logging Directories
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"
## Logs Naming
scriptlogdate="${scriptlogdir}/${servicename}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${servicename}-console-$(date '+%Y-%m-%d-%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
}
# Prevent from running this script as root.
if [ "$(whoami)" = "root" ]; then
if [ ! -f "${functionsdir}/core_functions.sh" ]||[ ! -f "${functionsdir}/check_root.sh" ]||[ ! -f "${functionsdir}/core_messages.sh" ]||[ ! -f "${functionsdir}/core_exit.sh" ]; then
echo "[ FAIL ] Do NOT run this script as root!"
exit 1
else
core_functions.sh
check_root.sh
fi
fi
core_dl.sh
core_functions.sh
getopt=$1
core_getopt.sh

2
CodenameCURE/ccserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CounterStrike/csserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CounterStrikeConditionZero/csczserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CounterStrikeGlobalOffensive/csgoserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
CounterStrikeSource/cssserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
DayOfDefeat/dodserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
DayOfDefeatSource/dodsserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
DayOfInfamy/doiserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
DeathmatchClassic/dmcserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
DontStarveTogether/dstserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
DoubleActionBoogaloo/dabserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
EmpiresMod/emserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Factorio/fctrserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
FistfulOfFrags/fofserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
GarrysMod/gmodserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
GoldenEyeSource/gesserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
HalfLife2Deathmatch/hl2dmserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
HalfLifeDeathmatch/hldmserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
HalfLifeDeathmatchSource/hldmsserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Hurtworld/hwserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Insurgency/insserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
JustCause2/jc2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
KillingFloor/kfserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Left4Dead/l4dserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Left4Dead2/l4d2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Minecraft/mcserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

4
MultiTheftAuto/mtaserver

@ -12,7 +12,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########
@ -57,7 +57,7 @@ logdays="7"
# Github Branch Select # Github Branch Select
# Allows for the use of different function files # Allows for the use of different function files
# from a different repo and/or branch. # from a different repo and/or branch.
githubuser="dgibbs64" githubuser="GameServerManagers"
githubrepo="linuxgsm" githubrepo="linuxgsm"
githubbranch="master" githubbranch="master"

2
Mumble/mumbleserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
NS2Combat/ns2cserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
NaturalSelection2/ns2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
NoMoreRoomInHell/nmrihserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
OpposingForce/opforserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
PiratesVikingandKnightsII/pvkiiserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
ProjectCars/pcserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
ProjectZomboid/pzserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Quake2/q2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Quake3/q3server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
QuakeLive/qlserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
QuakeWorld/qwserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

1
README.md

@ -3,6 +3,7 @@
[![Build Status](https://travis-ci.org/GameServerManagers/LinuxGSM.svg?branch=master)](https://travis-ci.org/GameServerManagers/LinuxGSM) [![Build Status](https://travis-ci.org/GameServerManagers/LinuxGSM.svg?branch=master)](https://travis-ci.org/GameServerManagers/LinuxGSM)
[![Under Development](https://badge.waffle.io/GameServerManagers/LinuxGSM.svg?label=Under%20Development&title=Under%20Development)](http://waffle.io/GameServerManagers/LinuxGSM) [![Under Development](https://badge.waffle.io/GameServerManagers/LinuxGSM.svg?label=Under%20Development&title=Under%20Development)](http://waffle.io/GameServerManagers/LinuxGSM)
[![Discord](https://discordapp.com/api/guilds/127498813903601664/widget.png?style=shield)](https://gameservermanagers.com/discord)
The Linux Game Server Managers are command line tools for quick, simple deployment and management of various dedicated game servers and voice alert servers. The Linux Game Server Managers are command line tools for quick, simple deployment and management of various dedicated game servers and voice alert servers.

2
RedOrchestra/roserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Ricochet/ricochetserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Rust/rustserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
SeriousSam3BFE/ss3sserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Starbound/sbserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
SvenCoop/svenserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
TeamFortress2/tf2server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
TeamFortressClassic/tfcserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
TeamSpeak3/ts3server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Teeworlds/twserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
Terraria/terrariaserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
TowerUnite/tuserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
UnrealTournament/utserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
UnrealTournament2004/ut2k4server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
UnrealTournament3/ut3server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
UnrealTournament99/ut99server

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
WolfensteinEnemyTerritory/wetserver

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

26
lgsm/functions/alert_pushbullet.sh

@ -8,10 +8,32 @@ local commandname="ALERT"
local commandaction="Alert" local commandaction="Alert"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
# converts text to ascii then passes to curl. allowing special characters to be sent e.g %
# http://stackoverflow.com/a/10660730
fn_rawurlencode() {
local string="${1}"
local strlen=${#string}
local encoded=""
local pos c o
for (( pos=0 ; pos<strlen ; pos++ )); do
c=${string:$pos:1}
case "$c" in
[-_.~a-zA-Z0-9] ) o="${c}" ;;
* ) printf -v o '%%%02x' "'$c"
esac
encoded+="${o}"
done
echo "${encoded}" # You can either set a return variable (FASTER)
REPLY="${encoded}" #+or echo the result (EASIER)... or both... :p
}
pbalertbody=$(fn_rawurlencode "${alertbody}"; echo ${REPLY})
pbalertsubject=$(fn_rawurlencode "${alertsubject}"; echo ${REPLY})
fn_print_dots "Sending Pushbullet alert" fn_print_dots "Sending Pushbullet alert"
sleep 1 sleep 1
pushbulletsend=$(curl --silent -u """${pushbullettoken}"":" -d channel_tag="${channeltag}" -d type="note" -d body="${pbalertbody}" -d title="${pbalertsubject}" 'https://api.pushbullet.com/v2/pushes'|grep -o invalid_access_token|uniq)
pushbulletsend=$(curl --silent -u """${pushbullettoken}"":" -d channel_tag="${channeltag}" -d type="note" -d body="${alertbody}" -d title="${alertsubject}" 'https://api.pushbullet.com/v2/pushes'|grep -o invalid_access_token|uniq)
if [ "${pushbulletsend}" == "invalid_access_token" ]; then if [ "${pushbulletsend}" == "invalid_access_token" ]; then
fn_print_fail_nl "Sending Pushbullet alert: invalid_access_token" fn_print_fail_nl "Sending Pushbullet alert: invalid_access_token"

30
lgsm/functions/check_deps.sh

@ -18,10 +18,10 @@ fn_deps_detector(){
depstatus=0 depstatus=0
deptocheck="${javaversion}" deptocheck="${javaversion}"
unset javacheck unset javacheck
elif [ -n "$(command -v apt-get)" ]; then elif [ -n "$(command -v apt-get 2>/dev/null)" ]; 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=$? depstatus=$?
elif [ -n "$(command -v yum)" ]; then elif [ -n "$(command -v yum 2>/dev/null)" ]; then
yum -q list installed ${deptocheck} > /dev/null 2>&1 yum -q list installed ${deptocheck} > /dev/null 2>&1
depstatus=$? depstatus=$?
fi fi
@ -56,15 +56,15 @@ fn_deps_email(){
array_deps_required+=( exim4 ) array_deps_required+=( exim4 )
elif [ -d /etc/sendmail ]; then elif [ -d /etc/sendmail ]; then
array_deps_required+=( sendmail ) array_deps_required+=( sendmail )
elif [ -n "$(command -v dpkg-query)" ]; then elif [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
array_deps_required+=( mailutils postfix ) array_deps_required+=( mailutils postfix )
elif [ -n "$(command -v yum)" ]; then elif [ -n "$(command -v yum 2>/dev/null)" ]; then
array_deps_required+=( mailx postfix ) array_deps_required+=( mailx postfix )
fi fi
else else
if [ -n "$(command -v dpkg-query)" ]; then if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
array_deps_required+=( mailutils postfix ) array_deps_required+=( mailutils postfix )
elif [ -n "$(command -v yum)" ]; then elif [ -n "$(command -v yum 2>/dev/null)" ]; then
array_deps_required+=( mailx postfix ) array_deps_required+=( mailx postfix )
fi fi
fi fi
@ -89,10 +89,10 @@ fn_found_missing_deps(){
echo -en "...\r" echo -en "...\r"
sleep 1 sleep 1
echo -en " \r" echo -en " \r"
if [ -n "$(command -v dpkg-query)" ]; then if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
cmd="sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get -y install ${array_deps_missing[@]}" cmd="sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get -y install ${array_deps_missing[@]}"
eval ${cmd} eval ${cmd}
elif [ -n "$(command -v yum)" ]; then elif [ -n "$(command -v yum 2>/dev/null)" ]; then
cmd="sudo yum -y install ${array_deps_missing[@]}" cmd="sudo yum -y install ${array_deps_missing[@]}"
eval ${cmd} eval ${cmd}
fi fi
@ -107,9 +107,9 @@ fn_found_missing_deps(){
echo "" echo ""
fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies." fn_print_warning_nl "$(whoami) does not have sudo access. Manually install dependencies."
fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies." fn_script_log_warn "$(whoami) does not have sudo access. Manually install dependencies."
if [ -n "$(command -v dpkg-query)" ]; then if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
echo " sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get install ${array_deps_missing[@]}" echo " sudo dpkg --add-architecture i386; sudo apt-get update; sudo apt-get install ${array_deps_missing[@]}"
elif [ -n "$(command -v yum)" ]; then elif [ -n "$(command -v yum 2>/dev/null)" ]; then
echo " sudo yum install ${array_deps_missing[@]}" echo " sudo yum install ${array_deps_missing[@]}"
fi fi
echo "" echo ""
@ -140,16 +140,16 @@ if [ "${function_selfname}" == "command_install.sh" ]; then
fi fi
# Check will only run if using apt-get or yum # Check will only run if using apt-get or yum
if [ -n "$(command -v dpkg-query)" ]; then if [ -n "$(command -v dpkg-query 2>/dev/null)" ]; then
# Generate array of missing deps # Generate array of missing deps
array_deps_missing=() array_deps_missing=()
# LinuxGSM requirements # LinuxGSM requirements
array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python bzip2 gzip unzip ) array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python bzip2 gzip unzip binutils )
# All servers except ts3 require tmux # All servers except ts3 require tmux
if [ "${gamename}" != "TeamSpeak 3" ]; then if [ "${gamename}" != "TeamSpeak 3" ]; then
if [ "$(command -v tmux)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then if [ "$(command -v tmux 2>/dev/null)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
tmuxcheck=1 # Added for users compiling tmux from source to bypass check. tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
else else
array_deps_required+=( tmux ) array_deps_required+=( tmux )
@ -219,7 +219,7 @@ if [ -n "$(command -v dpkg-query)" ]; then
fn_deps_email fn_deps_email
fn_check_loop fn_check_loop
elif [ -n "$(command -v yum)" ]; then elif [ -n "$(command -v yum 2>/dev/null)" ]; then
# Generate array of missing deps # Generate array of missing deps
array_deps_missing=() array_deps_missing=()
@ -232,7 +232,7 @@ elif [ -n "$(command -v yum)" ]; then
# All servers except ts3 require tmux # All servers except ts3 require tmux
if [ "${gamename}" != "TeamSpeak 3" ]; then if [ "${gamename}" != "TeamSpeak 3" ]; then
if [ "$(command -v tmux)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then if [ "$(command -v tmux 2>/dev/null)" ]||[ "$(which tmux 2>/dev/null)" ]||[ -f "/usr/bin/tmux" ]||[ -f "/bin/tmux" ]; then
tmuxcheck=1 # Added for users compiling tmux from source to bypass check. tmuxcheck=1 # Added for users compiling tmux from source to bypass check.
else else
array_deps_required+=( tmux ) array_deps_required+=( tmux )

85
lgsm/functions/command_dev_detect_deps.sh

@ -8,63 +8,49 @@ local commandname="DEPS-DETECT"
local commandaction="Deps-Detect" local commandaction="Deps-Detect"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
check.sh echo "================================="
cd "${executabledir}" echo "Dependencies Checker"
if [ "${executable}" == "./hlds_run" ]; then echo "================================="
executable=hlds_linux echo "Checking directory: "
elif [ "${executable}" == "./srcds_run" ]||[ "${executable}" == "./dabds.sh" ]||[ "${executable}" == "./srcds_run.sh" ]; then echo "${filesdir}"
executable=srcds_linux if [ "$(command -v eu-readelf 2>/dev/null)" ]; then
elif [ "${executable}" == "./server_linux32" ]; then
executable=libSpark_Core.so
elif [ "${executable}" == "./runSam3_DedicatedServer.sh" ]; then
executable=Sam3_DedicatedServer
elif [ "${executable}" == "./7DaysToDie.sh" ]; then
executable=7DaysToDie.x86
elif [ "${executable}" == "./ucc-bin" ]; then
if [ -f "${executabledir}/ucc-bin-real" ]; then
executable=ucc-bin-real
elif [ -f "${executabledir}/ut2004-bin" ]; then
executable=ut2004-bin
else
executable=ut-bin
fi
elif [ "${executable}" == "./ts3server_startscript.sh" ]; then
executable=ts3server_linux_amd64
fi
if [ "$(command -v eu-readelf)" ]; then
readelf=eu-readelf readelf=eu-readelf
elif [ "$(command -v readelf)" ]; then elif [ "$(command -v readelf 2>/dev/null)" ]; then
readelf=readelf readelf=readelf
else else
echo "readelf/eu-readelf not installed" echo "readelf/eu-readelf not installed"
fi fi
files=$(find ${filesdir} | wc -l)
find "${filesdir}" -type f -print0 |
while IFS= read -r -d $'\0' line; do
if [ "${readelf}" == "eu-readelf" ];then
${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $4 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
else
${readelf} -d "${line}" 2>/dev/null|grep NEEDED|awk '{ print $5 }'|sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
fi
echo -n "${i} / ${files}" $'\r'
((i++))
done
${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${tmpdir}/.depdetect_readelf" sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq"
echo "yum install " > "${tmpdir}/.depdetect_centos_list_uniq"
echo "apt-get install " > "${tmpdir}/.depdetect_ubuntu_list_uniq"
echo "apt-get install " > "${tmpdir}/.depdetect_debian_list_uniq"
while read lib; do while read lib; do
sharedlib=${lib} if [ "${lib}" == "libm.so.6" ]||[ "${lib}" == "libc.so.6" ]||[ "${lib}" == "libtcmalloc_minimal.so.4" ]||[ "${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
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" >> "${tmpdir}/.depdetect_centos_list" echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list" echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
echo "lib32gcc1" >> "${tmpdir}/.depdetect_debian_list" echo "lib32gcc1" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libstdc++.so.6" ]; then elif [ "${lib}" == "libstdc++.so.6" ]; then
echo "libstdc++.i686" >> "${tmpdir}/.depdetect_centos_list" echo "libstdc++.i686" >> "${tmpdir}/.depdetect_centos_list"
echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_ubuntu_list" echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_debian_list" echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libstdc++.so.5" ]; then elif [ "${lib}" == "libstdc++.so.5" ]; then
echo "compat-libstdc++-33.i686" >> "${tmpdir}/.depdetect_centos_list" echo "compat-libstdc++-33.i686" >> "${tmpdir}/.depdetect_centos_list"
echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_ubuntu_list" echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_debian_list" echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libcurl-gnutls.so.4" ]; then
echo "libcurl.i686" >> "${tmpdir}/.depdetect_centos_list"
echo "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
echo "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then
echo "speex.i686" >> "${tmpdir}/.depdetect_centos_list" echo "speex.i686" >> "${tmpdir}/.depdetect_centos_list"
echo "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list" echo "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
@ -80,14 +66,17 @@ while read lib; do
echo "libtbb2" >> "${tmpdir}/.depdetect_ubuntu_list" echo "libtbb2" >> "${tmpdir}/.depdetect_ubuntu_list"
echo "libtbb2" >> "${tmpdir}/.depdetect_debian_list" echo "libtbb2" >> "${tmpdir}/.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 elif [ "${lib}" == "libtier0.so" ]||[ "${lib}" == "libtier0_srv.so" ]||[ "${lib}" == "libvstdlib_srv.so" ]||[ "${lib}" == "Core.so" ]||[ "${lib}" == "libvstdlib.so" ]||[ "${lib}" == "libtier0_s.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 # Known shared libs what dont requires dependencies
: :
else else
unknownlib=1 unknownlib=1
echo "${lib}" >> "${tmpdir}/.depdetect_unknown" echo "${lib}" >> "${tmpdir}/.depdetect_unknown"
fi fi
done < "${tmpdir}/.depdetect_readelf"
done < "${tmpdir}/.depdetect_readelf_uniq"
sort "${tmpdir}/.depdetect_centos_list" | uniq >> "${tmpdir}/.depdetect_centos_list_uniq" sort "${tmpdir}/.depdetect_centos_list" | uniq >> "${tmpdir}/.depdetect_centos_list_uniq"
sort "${tmpdir}/.depdetect_ubuntu_list" | uniq >> "${tmpdir}/.depdetect_ubuntu_list_uniq" sort "${tmpdir}/.depdetect_ubuntu_list" | uniq >> "${tmpdir}/.depdetect_ubuntu_list_uniq"
sort "${tmpdir}/.depdetect_debian_list" | uniq >> "${tmpdir}/.depdetect_debian_list_uniq" sort "${tmpdir}/.depdetect_debian_list" | uniq >> "${tmpdir}/.depdetect_debian_list_uniq"
@ -95,10 +84,10 @@ if [ "${unknownlib}" == "1" ]; then
sort "${tmpdir}/.depdetect_unknown" | uniq >> "${tmpdir}/.depdetect_unknown_uniq" sort "${tmpdir}/.depdetect_unknown" | uniq >> "${tmpdir}/.depdetect_unknown_uniq"
fi fi
awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line" awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_centos_list_uniq" > "${tmpdir}/.depdetect_centos_line"
awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line" awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_ubuntu_list_uniq" > "${tmpdir}/.depdetect_ubuntu_line"
awk -vORS=' ' '{ print $1, $2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line" awk -vORS='' '{ print $1,$2 }' "${tmpdir}/.depdetect_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line"
echo ""
echo "" echo ""
echo "Required Dependencies" echo "Required Dependencies"
echo "=================================" echo "================================="
@ -128,10 +117,6 @@ echo ""
echo "Required Librarys" echo "Required Librarys"
echo "=================================" echo "================================="
sort "${tmpdir}/.depdetect_readelf" |uniq sort "${tmpdir}/.depdetect_readelf" |uniq
echo ""
echo "ldd"
echo "================================="
ldd ${executable}
echo -en "\n" echo -en "\n"
rm -f "${tmpdir}/.depdetect_centos_line" rm -f "${tmpdir}/.depdetect_centos_line"
rm -f "${tmpdir}/.depdetect_centos_list" rm -f "${tmpdir}/.depdetect_centos_list"
@ -146,8 +131,8 @@ rm -f "${tmpdir}/.depdetect_ubuntu_list"
rm -f "${tmpdir}/.depdetect_ubuntu_list_uniq" rm -f "${tmpdir}/.depdetect_ubuntu_list_uniq"
rm -f "${tmpdir}/.depdetect_readelf" rm -f "${tmpdir}/.depdetect_readelf"
rm -f "${tmpdir}/.depdetect_readelf_uniq"
rm -f "${tmpdir}/.depdetect_unknown" rm -f "${tmpdir}/.depdetect_unknown"
rm -f "${tmpdir}/.depdetect_unknown_uniq" rm -f "${tmpdir}/.depdetect_unknown_uniq"
core_exit.sh core_exit.sh

19
lgsm/functions/command_dev_detect_glibc.sh

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
# command_dev_detect_glibc.sh function # LinuxGSM command_dev_detect_glibc.sh function
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Website: https://gameservermanagers.com # Website: https://gameservermanagers.com
# Description: Automatically detects the version of GLIBC that is required. # Description: Automatically detects the version of GLIBC that is required.
@ -15,10 +15,6 @@ if [ -z "$(command -v objdump)" ]; then
core_exit.sh core_exit.sh
fi fi
if [ -z "${filesdir}" ]; then
dir="$(dirname $(readlink -f "${BASH_SOURCE[0]}"))"
fi
if [ -d "${filesdir}" ]; then if [ -d "${filesdir}" ]; then
echo "Checking directory: " echo "Checking directory: "
echo "${filesdir}" echo "${filesdir}"
@ -29,14 +25,21 @@ fi
echo "" echo ""
files=$(find ${filesdir} | wc -l) files=$(find ${filesdir} | wc -l)
find ${filesdir} -type f -print0 | find "${filesdir}" -type f -print0 |
while IFS= read -r -d $'\0' line; do while IFS= read -r -d $'\0' line; do
objdump -T $line 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp" glibcversion=$(objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" |grep -v GLIBCXX|sort|uniq|sort -r --version-sort| head -n 1)
echo -n "$i / $files" $'\r' if [ "${glibcversion}" ];then
echo "${glibcversion}: ${line}" >>"${tmpdir}/detect_glibc_files.tmp"
fi
objdump -T "${line}" 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
echo -n "${i} / ${files}" $'\r'
((i++)) ((i++))
done done
echo "" echo ""
cat "${tmpdir}/detect_glibc_files.tmp"
echo ""
cat "${tmpdir}/detect_glibc.tmp"|sort|uniq|sort -r --version-sort cat "${tmpdir}/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
rm "${tmpdir}/detect_glibc.tmp" rm "${tmpdir}/detect_glibc.tmp"
rm "${tmpdir}/detect_glibc_files.tmp"
core_exit.sh core_exit.sh

2
lgsm/functions/command_fastdl.sh

@ -23,7 +23,7 @@ luafastdlfile="lgsm_cl_force_fastdl.lua"
luafastdlfullpath="${luasvautorundir}/${luafastdlfile}" luafastdlfullpath="${luasvautorundir}/${luafastdlfile}"
# Check if bzip2 is installed # Check if bzip2 is installed
if [ -z "$(command -v bzip2)" ]; then if [ -z "$(command -v bzip2 2>/dev/null)" ]; then
fn_print_fail "bzip2 is not installed" fn_print_fail "bzip2 is not installed"
fn_script_log_fatal "bzip2 is not installed" fn_script_log_fatal "bzip2 is not installed"
core_exit.sh core_exit.sh

29
lgsm/functions/command_start.sh

@ -31,8 +31,9 @@ fn_start_teamspeak3(){
fn_script_log_error "${servername} is already running" fn_script_log_error "${servername} is already running"
core_exit.sh core_exit.sh
fi fi
if [ -f "${scriptlog}" ]; then
mv "${scriptlog}" "${scriptlogdate}" mv "${scriptlog}" "${scriptlogdate}"
fi
# Create lockfile # Create lockfile
date > "${rootdir}/${lockselfname}" date > "${rootdir}/${lockselfname}"
cd "${executabledir}" cd "${executabledir}"
@ -57,6 +58,18 @@ fn_start_teamspeak3(){
fn_start_tmux(){ fn_start_tmux(){
fn_parms fn_parms
# check for tmux size variables
if [[ "${servercfgtmuxwidth}" =~ ^[0-9]+$ ]]; then
sessionwidth="${servercfgtmuxwidth}"
else
sessionwidth="80"
fi
if [[ "${servercfgtmuxheight}" =~ ^[0-9]+$ ]]; then
sessionheight="${servercfgtmuxheight}"
else
sessionheight="23"
fi
# Log rotation # Log rotation
check_status.sh check_status.sh
if [ "${status}" == "0" ]; then if [ "${status}" == "0" ]; then
@ -81,16 +94,16 @@ fn_start_tmux(){
# Create lockfile # Create lockfile
date > "${rootdir}/${lockselfname}" date > "${rootdir}/${lockselfname}"
cd "${executabledir}" cd "${executabledir}"
tmux new-session -d -s "${servicename}" "${executable} ${parms}" 2> "${scriptlogdir}/.${servicename}-tmux-error.tmp" tmux new-session -d -x "${sessionheight}" -y "${sessionwidth}" -s "${servicename}" "${executable} ${parms}" 2> "${scriptlogdir}/.${servicename}-tmux-error.tmp"
# tmux pipe-pane not supported in tmux versions < 1.6 # tmux pipe-pane not supported in tmux versions < 1.6
if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -lt "16" ]; then if [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -lt "16" ] 2>/dev/null; then # Tmux compiled from source will not return a number, therefore bypass this check and trash the error
echo "Console logging disabled: Tmux => 1.6 required echo "Console logging disabled: Tmux => 1.6 required
https://gameservermanagers.com/tmux-upgrade https://gameservermanagers.com/tmux-upgrade
Currently installed: $(tmux -V)" > "${consolelog}" Currently installed: $(tmux -V)" > "${consolelog}"
# Console logging disabled: Bug in tmux 1.8 breaks logging # Console logging disabled: Bug in tmux 1.8 breaks logging
elif [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -eq "18" ]; then elif [ "$(tmux -V|sed "s/tmux //"|sed -n '1 p'|tr -cd '[:digit:]')" -eq "18" ] 2>/dev/null; then
echo "Console logging disabled: Bug in tmux 1.8 breaks logging echo "Console logging disabled: Bug in tmux 1.8 breaks logging
https://gameservermanagers.com/tmux-upgrade https://gameservermanagers.com/tmux-upgrade
Currently installed: $(tmux -V)" > "${consolelog}" Currently installed: $(tmux -V)" > "${consolelog}"
@ -126,7 +139,7 @@ fn_start_tmux(){
echo "=================================" echo "================================="
cat "${scriptlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${scriptlog}" cat "${scriptlogdir}/.${servicename}-tmux-error.tmp" | tee -a "${scriptlog}"
# Detected error https://gameservermanagers.com/issues # Detected error https://gameservermanagers.com/support
if [ $(grep -c "Operation not permitted" "${scriptlogdir}/.${servicename}-tmux-error.tmp") ]; then if [ $(grep -c "Operation not permitted" "${scriptlogdir}/.${servicename}-tmux-error.tmp") ]; then
echo "" echo ""
echo "Fix" echo "Fix"
@ -148,8 +161,8 @@ fn_start_tmux(){
else else
echo "No known fix currently. Please log an issue." echo "No known fix currently. Please log an issue."
fn_script_log_info "No known fix currently. Please log an issue." fn_script_log_info "No known fix currently. Please log an issue."
echo "https://gameservermanagers.com/issues" echo "https://gameservermanagers.com/support"
fn_script_log_info "https://gameservermanagers.com/issues" fn_script_log_info "https://gameservermanagers.com/support"
fi fi
fi fi
fi fi

2
lgsm/functions/command_stop.sh

@ -113,7 +113,7 @@ fn_stop_graceful_sdtd(){
sleep 1 sleep 1
if [ "${telnetenabled}" == "false" ]; then if [ "${telnetenabled}" == "false" ]; then
fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}" fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
elif [ "$(command -v expect)" ]||[ "$(which expect >/dev/null 2>&1)" ]; then elif [ "$(command -v expect 2>/dev/null)" ]||[ "$(which expect >/dev/null 2>&1)" ]; then
# Tries to shutdown with both localhost and server IP. # Tries to shutdown with both localhost and server IP.
for telnetip in 127.0.0.1 ${ip}; do for telnetip in 127.0.0.1 ${ip}; do
fn_print_dots "Graceful: telnet: ${telnetip}" fn_print_dots "Graceful: telnet: ${telnetip}"

11
lgsm/functions/command_validate.sh

@ -9,6 +9,7 @@ local commandaction="Validate"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))" local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_validation(){ fn_validation(){
appid="${1}"
echo "" echo ""
echo -e " * Validating may overwrite some customised files." echo -e " * Validating may overwrite some customised files."
echo -en " * https://developer.valvesoftware.com/wiki/SteamCMD#Validate" echo -en " * https://developer.valvesoftware.com/wiki/SteamCMD#Validate"
@ -51,10 +52,18 @@ check_status.sh
if [ "${status}" != "0" ]; then if [ "${status}" != "0" ]; then
exitbypass=1 exitbypass=1
command_stop.sh command_stop.sh
fn_validation fn_validation "${appid}"
# will also check for second appid
if [ "${gamename}" == "Classic Offensive" ]; then
fn_validation "${appid_co}"
fi
exitbypass=1 exitbypass=1
command_start.sh command_start.sh
else else
fn_validation fn_validation
# will also check for second appid
if [ "${gamename}" == "Classic Offensive" ]; then
fn_validation "${appid_co}"
fi
fi fi
core_exit.sh core_exit.sh

6
lgsm/functions/fix_glibc.sh

@ -11,7 +11,7 @@ local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
## i386 ## i386
# libstdc++.so.6 # libstdc++.so.6
local libstdc_servers_array=( "ARMA 3" "Blade Symphony" "Garry's Mod" "GoldenEye: Source" "Just Cause 2" ) local libstdc_servers_array=( "ARMA 3" "Blade Symphony" "Counter-Strike: Global Offensive" "Garry's Mod" "GoldenEye: Source" "Just Cause 2" "Team Fortress 2" )
for libstdc_server in "${libstdc_servers_array[@]}" for libstdc_server in "${libstdc_servers_array[@]}"
do do
if [ "${gamename}" == "${libstdc_server}" ]; then if [ "${gamename}" == "${libstdc_server}" ]; then
@ -20,7 +20,7 @@ do
done done
# libm.so.6 # libm.so.6
local libm_servers_array=( "Black Mesa: Deathmatch" "Codename CURE" "Day of Infamy" "Double Action: Boogaloo" "Empires Mod" "Fistful of Frags" "Garry's Mod" "GoldenEye: Source" "Insurgency" "Natural Selection 2" "NS2: Combat" "No More Room in Hell" ) local libm_servers_array=( "Black Mesa: Deathmatch" "Codename CURE" "Day of Infamy" "Double Action: Boogaloo" "Empires Mod" "Fistful of Frags" "Garry's Mod" "GoldenEye: Source" "Insurgency" "Natural Selection 2" "NS2: Combat" "No More Room in Hell" "Pirates, Vikings, and Knights II" "Team Fortress 2" )
for libm_server in "${libm_servers_array[@]}" for libm_server in "${libm_servers_array[@]}"
do do
if [ "${gamename}" == "${libm_server}" ]; then if [ "${gamename}" == "${libm_server}" ]; then
@ -29,7 +29,7 @@ do
done done
# libc.so.6 # libc.so.6
local libc_servers_array=( "Black Mesa: Deathmatch" "Blade Symphony" "Garry's Mod" "GoldenEye: Source" ) local libc_servers_array=( "Black Mesa: Deathmatch" "Blade Symphony" "Garry's Mod" "GoldenEye: Source" "Team Fortress 2" )
for libc_server in "${libc_servers_array[@]}" for libc_server in "${libc_servers_array[@]}"
do do
if [ "${gamename}" == "${libc_server}" ]; then if [ "${gamename}" == "${libc_server}" ]; then

40
lgsm/functions/gsquery.py

@ -1,16 +1,15 @@
#! /usr/bin/env python #! /usr/bin/env python
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Game Server Query # PythonGSQ
# Author: Anonymous & Daniel Gibbs # Author: Anonymous & Daniel Gibbs
# Website: https://gameservermanagers.com # Website: https://gameservermanagers.com
# Description: Handles querying of . # Description: Allows querying of various game servers.
import optparse import optparse
import socket import socket
import sys import sys
class PythonGSQ:
class GameServer:
def __init__(self, options, arguments): def __init__(self, options, arguments):
self.option = options self.option = options
self.argument = arguments self.argument = arguments
@ -18,32 +17,17 @@ class GameServer:
self.server_response_timeout = 5 self.server_response_timeout = 5
self.default_buffer_length = 1024 self.default_buffer_length = 1024
# #
if self.option.engine == 'avalanche': sourcequery=['quakelive','realvirtuality','refractor','source','goldsource','spark','unity3d']
self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40' idtech2query=['idtech3','quake','iw3.0']
elif self.option.engine == 'goldsource': idtech3query=['idtech2','iw2.0']
if self.option.engine in sourcequery:
self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0' self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'idtech2': elif self.option.engine in idtech2query:
self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00' self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
elif self.option.engine == 'idtech3': elif self.option.engine in idtech3query:
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
elif self.option.engine == 'iw2.0':
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus' self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
elif self.option.engine == 'iw3.0': elif self.option.engine == 'avalanche':
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus' self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
elif self.option.engine == 'quake':
self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
elif self.option.engine == 'quakelive':
self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'realvirtuality':
self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'refractor':
self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'source':
self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'spark':
self.query_prompt_string = b'\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'unity3d':
self.query_prompt_string = '\xFF\xFF\xFF\xFFTSource Engine Query\0'
elif self.option.engine == 'unreal': elif self.option.engine == 'unreal':
self.query_prompt_string = b'\x5C\x69\x6E\x66\x6F\x5C' self.query_prompt_string = b'\x5C\x69\x6E\x66\x6F\x5C'
elif self.option.engine == 'unreal2': elif self.option.engine == 'unreal2':
@ -135,5 +119,5 @@ if __name__ == '__main__':
) )
options, arguments = parser.parse_args() options, arguments = parser.parse_args()
# #
server = GameServer(options, arguments) server = PythonGSQ(options, arguments)
server.responding() server.responding()

10
lgsm/functions/info_distro.sh

@ -37,12 +37,14 @@ glibcversion="$(ldd --version | sed -n '1s/.* //p')"
## tmux version ## tmux version
# e.g: tmux 1.6 # e.g: tmux 1.6
if [ -z "$(command -v tmux)" ]; then if [ -z "$(command -V tmux 2>/dev/null)" ]; then
tmuxv="${red}NOT INSTALLED!${default}" tmuxv="${red}NOT INSTALLED!${default}"
elif [ "$(tmux -V|sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')" -lt "16" ]; then
tmuxv="$(tmux -V) (>= 1.6 required for console log)"
else else
tmuxv=$(tmux -V) if [ "$(tmux -V|sed "s/tmux //" | sed -n '1 p' | tr -cd '[:digit:]')" -lt "16" ] 2>/dev/null; then
tmuxv="$(tmux -V) (>= 1.6 required for console log)"
else
tmuxv=$(tmux -V)
fi
fi fi
## Uptime ## Uptime

20
lgsm/functions/info_glibc.sh

@ -35,6 +35,12 @@ elif [ "${gamename}" == "Call of Duty 4" ]; then
elif [ "${gamename}" == "Call of Duty: World at War" ]; then elif [ "${gamename}" == "Call of Duty: World at War" ]; then
glibcrequired="2.3.2" glibcrequired="2.3.2"
glibcfix="no" glibcfix="no"
elif [ "${gamename}" == "Codename CURE" ]; then
glibcrequired="2.15"
glibcfix="yes"
elif [ "${gamename}" == "Counter-Strike: Global Offensive" ]; then
glibcrequired="2.15"
glibcfix="yes"
elif [ "${gamename}" == "Day of Infamy" ]; then elif [ "${gamename}" == "Day of Infamy" ]; then
glibcrequired="2.15" glibcrequired="2.15"
glibcfix="yes" glibcfix="yes"
@ -68,6 +74,9 @@ elif [ "${gamename}" == "No More Room in Hell" ]; then
elif [ "${gamename}" == "Project Cars" ]; then elif [ "${gamename}" == "Project Cars" ]; then
glibcrequired="2.4" glibcrequired="2.4"
glibcfix="no" glibcfix="no"
elif [ "${gamename}" == "Pirates, Vikings, and Knights II" ]; then
glibcrequired="2.15"
glibcfix="yes"
elif [ "${gamename}" == "Quake 2" ]; then elif [ "${gamename}" == "Quake 2" ]; then
glibcrequired="NOT REQUIRED" glibcrequired="NOT REQUIRED"
glibcfix="no" glibcfix="no"
@ -80,6 +89,9 @@ elif [ "${gamename}" == "Quake Live" ]; then
elif [ "${gamename}" == "Sven Co-op" ]; then elif [ "${gamename}" == "Sven Co-op" ]; then
glibcrequired="2.18" glibcrequired="2.18"
glibcfix="no" glibcfix="no"
elif [ "${gamename}" == "Team Fortress 2" ]; then
glibcrequired="2.15"
glibcfix="yes"
elif [ "${gamename}" == "TeamSpeak 3" ]; then elif [ "${gamename}" == "TeamSpeak 3" ]; then
glibcrequired="NOT REQUIRED" glibcrequired="NOT REQUIRED"
glibcfix="no" glibcfix="no"
@ -104,9 +116,12 @@ elif [ "${engine}" == "realvirtuality" ]; then
elif [ "${engine}" == "seriousengine35" ]; then elif [ "${engine}" == "seriousengine35" ]; then
glibcrequired="2.13" glibcrequired="2.13"
glibcfix="yes" glibcfix="yes"
elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then elif [ "${engine}" == "source" ]; then
glibcrequired="2.3.6" glibcrequired="2.3.6"
glibcfix="no" glibcfix="no"
elif [ "${engine}" == "goldsource" ]; then
glibcrequired="2.3.4"
glibcfix="no"
elif [ "${engine}" == "spark" ]; then elif [ "${engine}" == "spark" ]; then
glibcrequired="2.15" glibcrequired="2.15"
glibcfix="yes" glibcfix="yes"
@ -134,6 +149,9 @@ elif [ "${engine}" == "unreal4" ]; then
elif [ "${engine}" == "unity3d" ]; then elif [ "${engine}" == "unity3d" ]; then
glibcrequired="2.15" glibcrequired="2.15"
glibcfix="no" glibcfix="no"
elif [ "${engine}" == "Team Fortress 2" ]; then
glibcrequired="2.15"
glibcfix="yes"
elif [ "${gamename}" == "TeamSpeak 3" ]; then elif [ "${gamename}" == "TeamSpeak 3" ]; then
glibcrequired="NOT REQUIRED" glibcrequired="NOT REQUIRED"
glibcfix="no" glibcfix="no"

6
lgsm/functions/install_config.sh

@ -228,6 +228,12 @@ elif [ "${gamename}" == "Counter-Strike: Global Offensive" ]; then
fn_fetch_default_config fn_fetch_default_config
fn_default_config_remote fn_default_config_remote
fn_set_config_vars fn_set_config_vars
elif [ "${gamename}" == "Classic Offensive" ]; then
gamedirname="ClassicOffensive"
array_configs+=( server.cfg )
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
elif [ "${gamename}" == "Counter-Strike: Source" ]; then elif [ "${gamename}" == "Counter-Strike: Source" ]; then
gamedirname="CounterStrikeSource" gamedirname="CounterStrikeSource"
array_configs+=( server.cfg ) array_configs+=( server.cfg )

14
lgsm/functions/install_server_files.sh

@ -34,7 +34,7 @@ fn_install_server_files(){
elif [ "${gamename}" == "Unreal Tournament 99" ]; then elif [ "${gamename}" == "Unreal Tournament 99" ]; then
fileurl="http://files.gameservermanagers.com/UnrealTournament99/ut99-server-451-ultimate-linux.tar.bz2"; filedir="${tmpdir}"; filename="ut99-server-451-ultimate-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="49cb24d0550ff6ddeaba6007045c6edd" fileurl="http://files.gameservermanagers.com/UnrealTournament99/ut99-server-451-ultimate-linux.tar.bz2"; filedir="${tmpdir}"; filename="ut99-server-451-ultimate-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="49cb24d0550ff6ddeaba6007045c6edd"
elif [ "${gamename}" == "Unreal Tournament" ]; then elif [ "${gamename}" == "Unreal Tournament" ]; then
fileurl="https://s3.amazonaws.com/unrealtournament/UnrealTournament-Server-XAN-3270765-Linux.zip"; filedir="${tmpdir}"; filename="UnrealTournament-Server-XAN-3270765-Linux.zip"; executecmd="noexecute" run="norun"; force="noforce"; md5="8791dc087383061d7f7f9f523237b8b3" fileurl="https://s3.amazonaws.com/unrealtournament/UnrealTournament-Server-XAN-3395761-Linux.zip"; filedir="${tmpdir}"; filename="UnrealTournament-Server-XAN-3395761-Linux.zip"; executecmd="noexecute" run="norun"; force="noforce"; md5="f04ad5b96865b19613303331ff4075eb"
elif [ "${gamename}" == "Unreal Tournament 3" ]; then elif [ "${gamename}" == "Unreal Tournament 3" ]; then
fileurl="http://files.gameservermanagers.com/UnrealTournament3/UT3-linux-server-2.1.tar.bz2"; filedir="${tmpdir}"; filename="UT3-linux-server-2.1.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="2527437b46f1b47f20228d27d72395a6" fileurl="http://files.gameservermanagers.com/UnrealTournament3/UT3-linux-server-2.1.tar.bz2"; filedir="${tmpdir}"; filename="UT3-linux-server-2.1.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="2527437b46f1b47f20228d27d72395a6"
elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then elif [ "${gamename}" == "Wolfenstein: Enemy Territory" ]; then
@ -72,7 +72,7 @@ fn_install_server_files_steamcmd(){
# Detects if unbuffer command is available for 32 bit distributions only. # Detects if unbuffer command is available for 32 bit distributions only.
info_distro.sh info_distro.sh
if [ $(command -v stdbuf) ]&&[ "${arch}" != "x86_64" ]; then if [ $(command -v stdbuf 2>/dev/null) ]&&[ "${arch}" != "x86_64" ]; then
unbuffer="stdbuf -i0 -o0 -e0" unbuffer="stdbuf -i0 -o0 -e0"
fi fi
@ -83,6 +83,11 @@ fn_install_server_files_steamcmd(){
else else
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} +quit ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} +quit
local exitcode=$? local exitcode=$?
if [ "${gamename}" == "Classic Offensive" ]; then
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid_co}" ${branch} +quit
local exitcode=$?
fi
fi fi
elif [ "${counter}" -ge "5" ]; then elif [ "${counter}" -ge "5" ]; then
if [ "${engine}" == "goldsource" ]; then if [ "${engine}" == "goldsource" ]; then
@ -91,6 +96,11 @@ fn_install_server_files_steamcmd(){
else else
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} -validate +quit ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} -validate +quit
local exitcode=$? local exitcode=$?
if [ "${gamename}" == "Classic Offensive" ]; then
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid_co}" ${branch} -validate +quit
local exitcode=$?
fi
fi fi
fi fi
elif [ "${counter}" -ge "11" ]; then elif [ "${counter}" -ge "11" ]; then

12
lgsm/functions/update_steamcmd.sh

@ -29,6 +29,10 @@ fn_update_steamcmd_dl(){
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +quit | tee -a "${scriptlog}" ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_set_config 90 mod ${appidmod} +app_update "${appid}" ${branch} +quit | tee -a "${scriptlog}"
else else
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} +quit | tee -a "${scriptlog}" ${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid}" ${branch} +quit | tee -a "${scriptlog}"
if [ "${gamename}" == "Classic Offensive" ]; then
${unbuffer} ./steamcmd.sh +login "${steamuser}" "${steampass}" +force_install_dir "${filesdir}" +app_update "${appid_co}" ${branch} +quit | tee -a "${scriptlog}"
fi
fi fi
fix.sh fix.sh
@ -136,6 +140,7 @@ fn_update_request_log(){
} }
fn_update_steamcmd_check(){ fn_update_steamcmd_check(){
appid="${1}"
fn_appmanifest_check fn_appmanifest_check
# Checks for server update from SteamCMD # Checks for server update from SteamCMD
fn_print_dots "Checking for update: SteamCMD" fn_print_dots "Checking for update: SteamCMD"
@ -181,7 +186,6 @@ fn_update_steamcmd_check(){
sleep 1 sleep 1
echo -e " Current build: ${red}${currentbuild}${default}" echo -e " Current build: ${red}${currentbuild}${default}"
echo -e " Available build: ${green}${availablebuild}${default}" echo -e " Available build: ${green}${availablebuild}${default}"
echo -e ""
echo -e " https://steamdb.info/app/${appid}/" echo -e " https://steamdb.info/app/${appid}/"
sleep 1 sleep 1
echo "" echo ""
@ -240,5 +244,9 @@ if [ "${engine}" == "goldsource" ]||[ "${forceupdate}" == "1" ]; then
fi fi
else else
fn_update_request_log fn_update_request_log
fn_update_steamcmd_check fn_update_steamcmd_check "${appid}"
# will also check for second appid
if [ "${gamename}" == "Classic Offensive" ]; then
fn_update_steamcmd_check "${appid_co}"
fi
fi fi

2
tests/tests_jc2server.sh

@ -17,7 +17,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

2
tests/tests_ts3server.sh

@ -14,7 +14,7 @@ if [ -f ".dev-debug" ]; then
set -x set -x
fi fi
version="170305" version="170530"
########################## ##########################
######## Settings ######## ######## Settings ########

Loading…
Cancel
Save