diff --git a/7DaysToDie/sdtdserver b/7DaysToDie/sdtdserver
index f46c1ce5c..be8388813 100644
--- a/7DaysToDie/sdtdserver
+++ b/7DaysToDie/sdtdserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/ARKSurvivalEvolved/arkserver b/ARKSurvivalEvolved/arkserver
index 62c756189..905a48b78 100644
--- a/ARKSurvivalEvolved/arkserver
+++ b/ARKSurvivalEvolved/arkserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/ShooterGame"
executabledir="${systemdir}/Binaries/Linux"
diff --git a/Arma3/arma3server b/Arma3/arma3server
index c140f9aa3..a27a49be2 100644
--- a/Arma3/arma3server
+++ b/Arma3/arma3server
@@ -42,10 +42,10 @@ parms="-netlog -ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${serv
# ARMA 3 Modules
# add mods with relative paths:
-# mods/\@CBA_A3\;
-# or several mods as:
-# mods/\@CBA_A3\;mods/\@task_force_radio
-# and chmod modules directories to 775
+# mods/@cba_a3
+# to load the "Community Base Addons v3" module found in the
+# directory serverfiles/mods/@cba_a3. Load several mods as:
+# mods="mods/@ace\;mods/@acex\;mods/@cba_a3"
mods=""
# Server-side Mods
@@ -84,6 +84,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/Battlefield1942/bf1942server b/Battlefield1942/bf1942server
index b0686992e..97851c553 100644
--- a/Battlefield1942/bf1942server
+++ b/Battlefield1942/bf1942server
@@ -54,6 +54,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${systemdir}"
diff --git a/BlackMesa/bmdmserver b/BlackMesa/bmdmserver
index 1fd97ff82..c28e35b1d 100644
--- a/BlackMesa/bmdmserver
+++ b/BlackMesa/bmdmserver
@@ -78,6 +78,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/bms"
executabledir="${filesdir}"
diff --git a/BladeSymphony/bsserver b/BladeSymphony/bsserver
index 57ee13f2f..837ef62c8 100644
--- a/BladeSymphony/bsserver
+++ b/BladeSymphony/bsserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/berimbau"
executabledir="${filesdir}"
diff --git a/BrainBread2/bb2server b/BrainBread2/bb2server
index d3a8c37df..78b57708e 100644
--- a/BrainBread2/bb2server
+++ b/BrainBread2/bb2server
@@ -78,6 +78,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/brainbread2"
executabledir="${filesdir}"
diff --git a/CodenameCURE/ccserver b/CodenameCURE/ccserver
index 7a7f299dd..150a8d3ac 100644
--- a/CodenameCURE/ccserver
+++ b/CodenameCURE/ccserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/cure"
executabledir="${filesdir}"
diff --git a/CounterStrike/csserver b/CounterStrike/csserver
index 884d22c23..601a3eb93 100644
--- a/CounterStrike/csserver
+++ b/CounterStrike/csserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/cstrike"
executabledir="${filesdir}"
diff --git a/CounterStrikeConditionZero/csczserver b/CounterStrikeConditionZero/csczserver
index e01bb06c1..5d58f2314 100644
--- a/CounterStrikeConditionZero/csczserver
+++ b/CounterStrikeConditionZero/csczserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/czero"
executabledir="${filesdir}"
diff --git a/CounterStrikeGlobalOffensive/csgoserver b/CounterStrikeGlobalOffensive/csgoserver
index 95b0c8fb0..6fb3d9313 100755
--- a/CounterStrikeGlobalOffensive/csgoserver
+++ b/CounterStrikeGlobalOffensive/csgoserver
@@ -96,6 +96,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/csgo"
executabledir="${filesdir}"
diff --git a/CounterStrikeSource/cssserver b/CounterStrikeSource/cssserver
index be91fa277..f2a7cd590 100644
--- a/CounterStrikeSource/cssserver
+++ b/CounterStrikeSource/cssserver
@@ -78,6 +78,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/cstrike"
executabledir="${filesdir}"
diff --git a/DayOfDefeat/dodserver b/DayOfDefeat/dodserver
index 1da45e816..ceedba772 100644
--- a/DayOfDefeat/dodserver
+++ b/DayOfDefeat/dodserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dod"
executabledir="${filesdir}"
diff --git a/DayOfDefeatSource/dodsserver b/DayOfDefeatSource/dodsserver
index 2e4dae73f..9e576bcd7 100644
--- a/DayOfDefeatSource/dodsserver
+++ b/DayOfDefeatSource/dodsserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dod"
executabledir="${filesdir}"
diff --git a/DayOfInfamy/doiserver b/DayOfInfamy/doiserver
index 532fef76e..2b7fdb4ec 100644
--- a/DayOfInfamy/doiserver
+++ b/DayOfInfamy/doiserver
@@ -75,6 +75,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/doi"
executabledir="${filesdir}"
diff --git a/DeathmatchClassic/dmcserver b/DeathmatchClassic/dmcserver
index 3aa5abbf8..6d6425929 100644
--- a/DeathmatchClassic/dmcserver
+++ b/DeathmatchClassic/dmcserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dmc"
executabledir="${filesdir}"
diff --git a/DontStarveTogether/dstserver b/DontStarveTogether/dstserver
index 8b41b9403..92002f8fb 100644
--- a/DontStarveTogether/dstserver
+++ b/DontStarveTogether/dstserver
@@ -71,6 +71,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}/bin"
diff --git a/DoubleActionBoogaloo/dabserver b/DoubleActionBoogaloo/dabserver
index 1b59fd369..e8db62c58 100644
--- a/DoubleActionBoogaloo/dabserver
+++ b/DoubleActionBoogaloo/dabserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/dab"
executabledir="${filesdir}"
diff --git a/EmpiresMod/emserver b/EmpiresMod/emserver
index 02897b313..5dfa54af1 100644
--- a/EmpiresMod/emserver
+++ b/EmpiresMod/emserver
@@ -78,6 +78,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/empires"
executabledir="${filesdir}"
diff --git a/FistfulOfFrags/fofserver b/FistfulOfFrags/fofserver
index 3eaa08911..59a896a20 100644
--- a/FistfulOfFrags/fofserver
+++ b/FistfulOfFrags/fofserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/fof"
executabledir="${filesdir}"
diff --git a/GarrysMod/gmodserver b/GarrysMod/gmodserver
index 3aeb63c62..1eab6d643 100644
--- a/GarrysMod/gmodserver
+++ b/GarrysMod/gmodserver
@@ -94,6 +94,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/garrysmod"
addonsdir="${systemdir}/addons"
diff --git a/GoldenEyeSource/gesserver b/GoldenEyeSource/gesserver
index 8e887476f..9b9495e0c 100644
--- a/GoldenEyeSource/gesserver
+++ b/GoldenEyeSource/gesserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/gesource"
executabledir="${filesdir}"
diff --git a/HalfLife2Deathmatch/hl2dmserver b/HalfLife2Deathmatch/hl2dmserver
index f6c2789a9..e26a2b11c 100644
--- a/HalfLife2Deathmatch/hl2dmserver
+++ b/HalfLife2Deathmatch/hl2dmserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/hl2mp"
executabledir="${filesdir}"
diff --git a/HalfLifeDeathmatch/hldmserver b/HalfLifeDeathmatch/hldmserver
index 239ebefe2..10a32f7d7 100644
--- a/HalfLifeDeathmatch/hldmserver
+++ b/HalfLifeDeathmatch/hldmserver
@@ -67,6 +67,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/valve"
executabledir="${filesdir}"
diff --git a/HalfLifeDeathmatchSource/hldmsserver b/HalfLifeDeathmatchSource/hldmsserver
index cdb79c320..ff040ab27 100644
--- a/HalfLifeDeathmatchSource/hldmsserver
+++ b/HalfLifeDeathmatchSource/hldmsserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/hl1mp"
executabledir="${filesdir}"
diff --git a/Hurtworld/hwserver b/Hurtworld/hwserver
index 253a4ce81..2e28481b6 100644
--- a/Hurtworld/hwserver
+++ b/Hurtworld/hwserver
@@ -87,6 +87,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/Insurgency/insserver b/Insurgency/insserver
index 8d2bf96e3..29ed31c8c 100644
--- a/Insurgency/insserver
+++ b/Insurgency/insserver
@@ -75,6 +75,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/insurgency"
executabledir="${filesdir}"
diff --git a/JustCause2/jc2server b/JustCause2/jc2server
index ab1b81d19..7ac9b3b3a 100644
--- a/JustCause2/jc2server
+++ b/JustCause2/jc2server
@@ -67,6 +67,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/KillingFloor/kfserver b/KillingFloor/kfserver
index 1c7093d34..a9ba85c33 100644
--- a/KillingFloor/kfserver
+++ b/KillingFloor/kfserver
@@ -72,6 +72,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
executabledir="${systemdir}"
diff --git a/Left4Dead/l4dserver b/Left4Dead/l4dserver
index 995308cd0..9a2f8fb47 100644
--- a/Left4Dead/l4dserver
+++ b/Left4Dead/l4dserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/left4dead"
executabledir="${filesdir}"
diff --git a/Left4Dead2/l4d2server b/Left4Dead2/l4d2server
index 1443327e5..2dda75759 100644
--- a/Left4Dead2/l4d2server
+++ b/Left4Dead2/l4d2server
@@ -72,6 +72,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/left4dead2"
executabledir="${filesdir}"
diff --git a/Mumble/mumbleserver b/Mumble/mumbleserver
index 79a61ee01..ab9fdc22f 100644
--- a/Mumble/mumbleserver
+++ b/Mumble/mumbleserver
@@ -55,6 +55,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/NS2Combat/ns2cserver b/NS2Combat/ns2cserver
index b935f7472..4dbc1e276 100644
--- a/NS2Combat/ns2cserver
+++ b/NS2Combat/ns2cserver
@@ -80,6 +80,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}/ia32"
diff --git a/NaturalSelection2/ns2server b/NaturalSelection2/ns2server
index 52e8eb2be..54b6ed226 100644
--- a/NaturalSelection2/ns2server
+++ b/NaturalSelection2/ns2server
@@ -80,6 +80,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/NoMoreRoomInHell/nmrihserver b/NoMoreRoomInHell/nmrihserver
index 58dc2e024..d1fea24f0 100644
--- a/NoMoreRoomInHell/nmrihserver
+++ b/NoMoreRoomInHell/nmrihserver
@@ -78,6 +78,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/nmrih"
executabledir="${filesdir}"
diff --git a/OpposingForce/opforserver b/OpposingForce/opforserver
index 9a283f014..7faa17c66 100644
--- a/OpposingForce/opforserver
+++ b/OpposingForce/opforserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/gearbox"
executabledir="${filesdir}"
diff --git a/PiratesVikingandKnightsII/pvkiiserver b/PiratesVikingandKnightsII/pvkiiserver
index dacaca04a..def1a6c95 100644
--- a/PiratesVikingandKnightsII/pvkiiserver
+++ b/PiratesVikingandKnightsII/pvkiiserver
@@ -73,6 +73,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/pvkii"
executabledir="${filesdir}"
diff --git a/ProjectZomboid/pzserver b/ProjectZomboid/pzserver
index 60bf63bee..8683d84e8 100644
--- a/ProjectZomboid/pzserver
+++ b/ProjectZomboid/pzserver
@@ -69,6 +69,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/QuakeLive/qlserver b/QuakeLive/qlserver
index 586788936..72fdc32d8 100755
--- a/QuakeLive/qlserver
+++ b/QuakeLive/qlserver
@@ -76,6 +76,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/RedOrchestra/roserver b/RedOrchestra/roserver
index 4f1c416ff..0403a67a5 100644
--- a/RedOrchestra/roserver
+++ b/RedOrchestra/roserver
@@ -63,6 +63,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/system"
executabledir="${systemdir}"
diff --git a/Ricochet/ricochetserver b/Ricochet/ricochetserver
index b35fbc86a..d3a285691 100644
--- a/Ricochet/ricochetserver
+++ b/Ricochet/ricochetserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/ricochet"
executabledir="${filesdir}"
diff --git a/Rust/rustserver b/Rust/rustserver
index 8d03b7019..43a621596 100644
--- a/Rust/rustserver
+++ b/Rust/rustserver
@@ -90,6 +90,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/SeriousSam3BFE/ss3sserver b/SeriousSam3BFE/ss3sserver
index a3d66ab3e..9d2420c60 100644
--- a/SeriousSam3BFE/ss3sserver
+++ b/SeriousSam3BFE/ss3sserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/Bin"
executable="./runSam3_DedicatedServer.sh"
diff --git a/Starbound/sbserver b/Starbound/sbserver
index 3bfd2883c..9af94eae6 100644
--- a/Starbound/sbserver
+++ b/Starbound/sbserver
@@ -67,6 +67,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}/linux"
diff --git a/SvenCoop/svencoopserver b/SvenCoop/svencoopserver
index 63667b3eb..1ae1a341e 100644
--- a/SvenCoop/svencoopserver
+++ b/SvenCoop/svencoopserver
@@ -72,6 +72,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/svencoop"
executabledir="${filesdir}"
diff --git a/TeamFortress2/tf2server b/TeamFortress2/tf2server
index f82451360..c9acadd43 100644
--- a/TeamFortress2/tf2server
+++ b/TeamFortress2/tf2server
@@ -78,6 +78,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/tf"
executabledir="${filesdir}"
diff --git a/TeamFortressClassic/tfcserver b/TeamFortressClassic/tfcserver
index 7480e25c8..7dc68f971 100644
--- a/TeamFortressClassic/tfcserver
+++ b/TeamFortressClassic/tfcserver
@@ -68,6 +68,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/tfc"
executabledir="${filesdir}"
diff --git a/TeamSpeak3/ts3server b/TeamSpeak3/ts3server
index 101b3552d..88f187663 100644
--- a/TeamSpeak3/ts3server
+++ b/TeamSpeak3/ts3server
@@ -41,6 +41,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/Teeworlds/twserver b/Teeworlds/twserver
index 90f370d3f..c8d920d59 100644
--- a/Teeworlds/twserver
+++ b/Teeworlds/twserver
@@ -63,6 +63,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/Terraria/terrariaserver b/Terraria/terrariaserver
index b669fb968..2cbef2d13 100644
--- a/Terraria/terrariaserver
+++ b/Terraria/terrariaserver
@@ -63,6 +63,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/UnrealTournament/utserver b/UnrealTournament/utserver
index 66cdb526a..a5ff70a61 100644
--- a/UnrealTournament/utserver
+++ b/UnrealTournament/utserver
@@ -60,6 +60,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/LinuxServer"
executabledir="${systemdir}/Engine/Binaries/Linux"
diff --git a/UnrealTournament2004/ut2k4server b/UnrealTournament2004/ut2k4server
index 9bf79457c..f28240414 100644
--- a/UnrealTournament2004/ut2k4server
+++ b/UnrealTournament2004/ut2k4server
@@ -46,6 +46,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
executabledir="${systemdir}"
diff --git a/UnrealTournament3/ut3server b/UnrealTournament3/ut3server
index 55bd2a171..6af1c802e 100644
--- a/UnrealTournament3/ut3server
+++ b/UnrealTournament3/ut3server
@@ -58,6 +58,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${systemdir}/Binaries"
diff --git a/UnrealTournament99/ut99server b/UnrealTournament99/ut99server
index a6851fcaa..b40a41fdd 100644
--- a/UnrealTournament99/ut99server
+++ b/UnrealTournament99/ut99server
@@ -55,6 +55,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}/System"
executabledir="${systemdir}"
diff --git a/WolfensteinEnemyTerritory/wetserver b/WolfensteinEnemyTerritory/wetserver
index f9ef1fe91..28f4c510b 100644
--- a/WolfensteinEnemyTerritory/wetserver
+++ b/WolfensteinEnemyTerritory/wetserver
@@ -53,6 +53,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${systemdir}"
diff --git a/lgsm/functions/check_steamcmd.sh b/lgsm/functions/check_steamcmd.sh
index 1e0f66cd7..06e941ff4 100644
--- a/lgsm/functions/check_steamcmd.sh
+++ b/lgsm/functions/check_steamcmd.sh
@@ -10,8 +10,8 @@ fn_install_steamcmd(){
if [ ! -d "${steamcmddir}" ]; then
mkdir -v "${steamcmddir}"
fi
- fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "${lgsmdir}/tmp" "steamcmd_linux.tar.gz"
- fn_dl_extract "${lgsmdir}/tmp" "steamcmd_linux.tar.gz" "${steamcmddir}"
+ fn_fetch_file "http://media.steampowered.com/client/steamcmd_linux.tar.gz" "${tmpdir}" "steamcmd_linux.tar.gz"
+ fn_dl_extract "${tmpdir}" "steamcmd_linux.tar.gz" "${steamcmddir}"
chmod +x "${steamcmddir}/steamcmd.sh"
}
diff --git a/lgsm/functions/command_debug.sh b/lgsm/functions/command_debug.sh
index 4035319e1..f6958a8be 100644
--- a/lgsm/functions/command_debug.sh
+++ b/lgsm/functions/command_debug.sh
@@ -94,10 +94,15 @@ trap fn_lockfile_trap INT
cd "${executabledir}"
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
${executable} ${parms} -debug
+elif [ "${engine}" == "realvirtuality" ]; then
+ # Arma3 requires semicolons in the module list, which need to
+ # be escaped for regular (tmux) loading, but need to be
+ # stripped when loading straight from the console.
+ ${executable} ${parms//\\;/;}
else
${executable} ${parms}
fi
# remove trap.
trap - INT
-core_exit.sh
\ No newline at end of file
+core_exit.sh
diff --git a/lgsm/functions/command_details.sh b/lgsm/functions/command_details.sh
index 0cc18d692..fe7bfa154 100644
--- a/lgsm/functions/command_details.sh
+++ b/lgsm/functions/command_details.sh
@@ -580,66 +580,74 @@ fn_details_ark(){
# Run checks and gathers details to display.
-check.sh
-info_config.sh
-info_distro.sh
-info_glibc.sh
-info_parms.sh
-fn_details_os
-fn_details_performance
-fn_details_disk
-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
- fn_parms
- fn_details_commandlineparms
-fi
-fn_details_ports
-
-# Display details depending on game or engine.
-if [ "${engine}" == "avalanche" ]; then
- fn_details_avalanche
-elif [ "${engine}" == "dontstarve" ]; then
- fn_details_dontstarve
-elif [ "${engine}" == "lwjgl2" ]; then
- fn_details_minecraft
-elif [ "${engine}" == "projectzomboid" ]; then
- fn_details_projectzomboid
-elif [ "${engine}" == "idtech3" ]; then
- fn_details_idtech3
-elif [ "${engine}" == "realvirtuality" ]; then
- fn_details_realvirtuality
-elif [ "${engine}" == "seriousengine35" ]; then
- fn_details_seriousengine35
-elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
- fn_details_source
-elif [ "${engine}" == "spark" ]; then
- fn_details_spark
-elif [ "${engine}" == "starbound" ]; then
- fn_details_starbound
-elif [ "${engine}" == "teeworlds" ]; then
- fn_details_teeworlds
-elif [ "${engine}" == "terraria" ]; then
- fn_details_terraria
-elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
- fn_details_unreal
-elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
- fn_details_ark
-elif [ "${gamename}" == "Hurtworld" ]; then
- fn_details_hurtworld
-elif [ "${gamename}" == "7 Days To Die" ]; then
- fn_details_sdtd
-elif [ "${gamename}" == "TeamSpeak 3" ]; then
- fn_details_teamspeak3
-elif [ "${gamename}" == "Mumble" ]; then
- fn_details_mumble
-elif [ "${gamename}" == "Rust" ]; then
- fn_details_rust
-else
- fn_print_error_nl "Unable to detect server engine."
-fi
-fn_details_statusbottom
-core_exit.sh
\ No newline at end of file
+fn_display_details() {
+ check.sh
+ info_config.sh
+ info_distro.sh
+ info_glibc.sh
+ info_parms.sh
+ fn_details_os
+ fn_details_performance
+ fn_details_disk
+ 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
+ fn_parms
+ fn_details_commandlineparms
+ fi
+ fn_details_ports
+
+ # Display details depending on game or engine.
+ if [ "${engine}" == "avalanche" ]; then
+ fn_details_avalanche
+ elif [ "${engine}" == "dontstarve" ]; then
+ fn_details_dontstarve
+ elif [ "${engine}" == "lwjgl2" ]; then
+ fn_details_minecraft
+ elif [ "${engine}" == "projectzomboid" ]; then
+ fn_details_projectzomboid
+ elif [ "${engine}" == "idtech3" ]; then
+ fn_details_idtech3
+ elif [ "${engine}" == "realvirtuality" ]; then
+ fn_details_realvirtuality
+ elif [ "${engine}" == "seriousengine35" ]; then
+ fn_details_seriousengine35
+ elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
+ fn_details_source
+ elif [ "${engine}" == "spark" ]; then
+ fn_details_spark
+ elif [ "${engine}" == "starbound" ]; then
+ fn_details_starbound
+ elif [ "${engine}" == "teeworlds" ]; then
+ fn_details_teeworlds
+ elif [ "${engine}" == "terraria" ]; then
+ fn_details_terraria
+ elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
+ fn_details_unreal
+ elif [ "${gamename}" == "ARK: Survivial Evolved" ]; then
+ fn_details_ark
+ elif [ "${gamename}" == "Hurtworld" ]; then
+ fn_details_hurtworld
+ elif [ "${gamename}" == "7 Days To Die" ]; then
+ fn_details_sdtd
+ elif [ "${gamename}" == "TeamSpeak 3" ]; then
+ fn_details_teamspeak3
+ elif [ "${gamename}" == "Mumble" ]; then
+ fn_details_mumble
+ elif [ "${gamename}" == "Rust" ]; then
+ fn_details_rust
+ else
+ fn_print_error_nl "Unable to detect server engine."
+ fi
+
+ fn_details_statusbottom
+}
+
+if [ -z "${postdetails}" ] ;
+then
+ fn_display_details
+ core_exit.sh
+fi
diff --git a/lgsm/functions/command_dev_detect_deps.sh b/lgsm/functions/command_dev_detect_deps.sh
index d5d556c6b..01c96ff47 100644
--- a/lgsm/functions/command_dev_detect_deps.sh
+++ b/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' > "${lgsmdir}/tmp/.depdetect_readelf"
+${readelf} -d ${executable} |grep NEEDED|awk '{ print $5 }'|sed 's/\[//g'|sed 's/\]//g' > "${tmpdir}/.depdetect_readelf"
-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"
+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
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" >> "${lgsmdir}/tmp/.depdetect_centos_list"
- echo "lib32gcc1" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
- echo "lib32gcc1" >> "${lgsmdir}/tmp/.depdetect_debian_list"
+ echo "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
+ echo "lib32gcc1" >> "${tmpdir}/.depdetect_ubuntu_list"
+ echo "lib32gcc1" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libstdc++.so.6" ]; then
- 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"
+ echo "libstdc++.i686" >> "${tmpdir}/.depdetect_centos_list"
+ echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
+ echo "libstdc++6:i386" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libstdc++.so.5" ]; then
- 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"
+ echo "compat-libstdc++-33.i686" >> "${tmpdir}/.depdetect_centos_list"
+ echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
+ echo "libstdc++5:i386" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then
- echo "speex.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
- echo "speex:i386" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
- echo "speex:i386" >> "${lgsmdir}/tmp/.depdetect_debian_list"
+ echo "speex.i686" >> "${tmpdir}/.depdetect_centos_list"
+ echo "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
+ echo "speex:i386" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "./libSDL-1.2.so.0" ]||[ "${lib}" == "libSDL-1.2.so.0" ]; then
- echo "SDL.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
- echo "libsdl1.2debian" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
- echo "libsdl1.2debian" >> "${lgsmdir}/tmp/.depdetect_debian_list"
+ echo "SDL.i686" >> "${tmpdir}/.depdetect_centos_list"
+ echo "libsdl1.2debian" >> "${tmpdir}/.depdetect_ubuntu_list"
+ echo "libsdl1.2debian" >> "${tmpdir}/.depdetect_debian_list"
elif [ "${lib}" == "libtbb.so.2" ]; then
- echo "tbb.i686" >> "${lgsmdir}/tmp/.depdetect_centos_list"
- echo "libtbb2" >> "${lgsmdir}/tmp/.depdetect_ubuntu_list"
- echo "libtbb2" >> "${lgsmdir}/tmp/.depdetect_debian_list"
+ echo "tbb.i686" >> "${tmpdir}/.depdetect_centos_list"
+ echo "libtbb2" >> "${tmpdir}/.depdetect_ubuntu_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
# Known shared libs what dont requires dependencies
:
else
unknownlib=1
- echo "${lib}" >> "${lgsmdir}/tmp/.depdetect_unknown"
+ echo "${lib}" >> "${tmpdir}/.depdetect_unknown"
fi
-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"
+done < "${tmpdir}/.depdetect_readelf"
+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_debian_list" | uniq >> "${tmpdir}/.depdetect_debian_list_uniq"
if [ "${unknownlib}" == "1" ]; then
- sort "${lgsmdir}/tmp/.depdetect_unknown" | uniq >> "${lgsmdir}/tmp/.depdetect_unknown_uniq"
+ sort "${tmpdir}/.depdetect_unknown" | uniq >> "${tmpdir}/.depdetect_unknown_uniq"
fi
-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"
+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_debian_list_uniq" > "${tmpdir}/.depdetect_debian_line"
echo ""
echo "Required Dependencies"
@@ -106,46 +106,46 @@ echo "${executable}"
echo ""
echo "CentOS"
echo "================================="
-cat "${lgsmdir}/tmp/.depdetect_centos_line"
+cat "${tmpdir}/.depdetect_centos_line"
echo ""
echo ""
echo "Ubuntu"
echo "================================="
-cat "${lgsmdir}/tmp/.depdetect_ubuntu_line"
+cat "${tmpdir}/.depdetect_ubuntu_line"
echo ""
echo ""
echo "Debian"
echo "================================="
-cat "${lgsmdir}/tmp/.depdetect_debian_line"
+cat "${tmpdir}/.depdetect_debian_line"
echo ""
if [ "${unknownlib}" == "1" ]; then
echo ""
echo "Unknown shared Library"
echo "================================="
- cat "${lgsmdir}/tmp/.depdetect_unknown"
+ cat "${tmpdir}/.depdetect_unknown"
fi
echo ""
echo "Required Librarys"
echo "================================="
-sort "${lgsmdir}/tmp/.depdetect_readelf" |uniq
+sort "${tmpdir}/.depdetect_readelf" |uniq
echo ""
echo "ldd"
echo "================================="
ldd ${executable}
echo -en "\n"
-rm -f "${lgsmdir}/tmp/.depdetect_centos_line"
-rm -f "${lgsmdir}/tmp/.depdetect_centos_list"
-rm -f "${lgsmdir}/tmp/.depdetect_centos_list_uniq"
+rm -f "${tmpdir}/.depdetect_centos_line"
+rm -f "${tmpdir}/.depdetect_centos_list"
+rm -f "${tmpdir}/.depdetect_centos_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 "${tmpdir}/.depdetect_debian_line"
+rm -f "${tmpdir}/.depdetect_debian_list"
+rm -f "${tmpdir}/.depdetect_debian_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 "${tmpdir}/.depdetect_ubuntu_line"
+rm -f "${tmpdir}/.depdetect_ubuntu_list"
+rm -f "${tmpdir}/.depdetect_ubuntu_list_uniq"
-rm -f "${lgsmdir}/tmp/.depdetect_readelf"
+rm -f "${tmpdir}/.depdetect_readelf"
-rm -f "${lgsmdir}/tmp/.depdetect_unknown"
-rm -f "${lgsmdir}/tmp/.depdetect_unknown_uniq"
\ No newline at end of file
+rm -f "${tmpdir}/.depdetect_unknown"
+rm -f "${tmpdir}/.depdetect_unknown_uniq"
\ No newline at end of file
diff --git a/lgsm/functions/command_dev_detect_glibc.sh b/lgsm/functions/command_dev_detect_glibc.sh
index c039e44cb..7c247f888 100644
--- a/lgsm/functions/command_dev_detect_glibc.sh
+++ b/lgsm/functions/command_dev_detect_glibc.sh
@@ -25,10 +25,10 @@ echo ""
files=$(find ${filesdir} | wc -l)
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"
+ objdump -T $line 2>/dev/null|grep -oP "GLIBC[^ ]+" >>"${tmpdir}/detect_glibc.tmp"
echo -n "$i / $files" $'\r'
((i++))
done
echo ""
-cat "${lgsmdir}/tmp/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
-rm "${lgsmdir}/tmp/detect_glibc.tmp"
\ No newline at end of file
+cat "${tmpdir}/detect_glibc.tmp"|sort|uniq|sort -r --version-sort
+rm "${tmpdir}/detect_glibc.tmp"
\ No newline at end of file
diff --git a/lgsm/functions/command_dev_detect_ldd.sh b/lgsm/functions/command_dev_detect_ldd.sh
index b9be9386a..07ad3f581 100644
--- a/lgsm/functions/command_dev_detect_ldd.sh
+++ b/lgsm/functions/command_dev_detect_ldd.sh
@@ -25,14 +25,14 @@ echo ""
files=$(find ${filesdir} | wc -l)
find ${filesdir} -type f -print0 |
while IFS= read -r -d $'\0' line; do
- #ldd -v $line 2>/dev/null|grep "=>" >>"${lgsmdir}/tmp/detect_ldd.tmp"
+ #ldd -v $line 2>/dev/null|grep "=>" >>"${tmpdir}/detect_ldd.tmp"
if [ -n "$(ldd $line 2>/dev/null |grep -v "not a dynamic executable")" ]; then
- echo "$line" >> "${lgsmdir}/tmp/detect_ldd.tmp"
- ldd $line 2>/dev/null |grep -v "not a dynamic executable" >> "${lgsmdir}/tmp/detect_ldd.tmp"
+ echo "$line" >> "${tmpdir}/detect_ldd.tmp"
+ ldd $line 2>/dev/null |grep -v "not a dynamic executable" >> "${tmpdir}/detect_ldd.tmp"
if [ -n "$(ldd $line 2>/dev/null |grep -v "not a dynamic executable"|grep "not found")" ]; then
- echo "$line" >> "${lgsmdir}/tmp/detect_ldd_not_found.tmp"
- ldd $line 2>/dev/null |grep -v "not a dynamic executable"|grep "not found" >> "${lgsmdir}/tmp/detect_ldd_not_found.tmp"
+ echo "$line" >> "${tmpdir}/detect_ldd_not_found.tmp"
+ ldd $line 2>/dev/null |grep -v "not a dynamic executable"|grep "not found" >> "${tmpdir}/detect_ldd_not_found.tmp"
fi
fi
echo -n "$i / $files" $'\r'
@@ -42,12 +42,12 @@ echo ""
echo ""
echo "All"
echo "================================="
-cat "${lgsmdir}/tmp/detect_ldd.tmp"
+cat "${tmpdir}/detect_ldd.tmp"
echo ""
echo "Not Found"
echo "================================="
-cat "${lgsmdir}/tmp/detect_ldd_not_found.tmp"
+cat "${tmpdir}/detect_ldd_not_found.tmp"
-rm "${lgsmdir}/tmp/detect_ldd.tmp"
-rm "${lgsmdir}/tmp/detect_ldd_not_found.tmp"
\ No newline at end of file
+rm "${tmpdir}/detect_ldd.tmp"
+rm "${tmpdir}/detect_ldd_not_found.tmp"
\ No newline at end of file
diff --git a/lgsm/functions/command_postdetails.sh b/lgsm/functions/command_postdetails.sh
new file mode 100644
index 000000000..330374cf5
--- /dev/null
+++ b/lgsm/functions/command_postdetails.sh
@@ -0,0 +1,146 @@
+#!/bin/bash
+# LGSM command_postdetails.sh function
+# Author: CedarLUG
+# Contributor: CedarLUG
+# Website: https://gameservermanagers.com
+# Description: Strips sensitive information out of Details output
+
+local commandname="postdetails"
+local commandaction="Postdetails"
+local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
+
+# postdetails variable affects the output of command_details.sh. Setting
+# it here silences the output from sourcing command_details.sh.
+postdetails=yes
+
+# Set posttarget to the appropriately-defined post destination.
+
+# The options for posttarget are:
+# The default destination - hastebin
+# posttarget="http://hastebin.com"
+#
+# Secondary destination - pastebin
+# posttarget="http://pastebin.com
+#
+# Third option - leave on the filesystem
+# posttarget=
+#
+# All of these options can be specified/overridden from the top-level
+# invocation, as in:
+# rustserver@gamerig:~$ posttarget="http://pastebin.com" ./rustserver pd
+# to post to pastebin, or
+# rustserver@gamerig:~$ posttarget= ./rustserver pd
+# to leave the output on the filesystem.
+posttarget=${posttarget="http://hastebin.com"}
+
+# For pastebin, you can set the expiration period.
+# use 1 week as the default, other options are '24h' for a day, etc.
+# This, too, may be overridden from the command line at the top-level
+postexpire="${postexpire="1W"}"
+
+# This file sources the command_details.sh file to leverage all
+# of the already-defined functions. To keep the command_details.sh
+# from actually producing output, the main executable statements have
+# been wrapped in the equivalent of an ifdef clause, that looks
+# for the variable "postdetails" to be defined. -CedarLUG
+
+# source all of the functions defined in the details command
+command_details.sh
+
+# redefine as command_details.sh changes them
+local commandname="postdetails"
+local commandaction="Postdetails"
+local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
+
+fn_bad_tmpfile() {
+ echo "There was a problem creating a temporary file ${tmpfile}."
+ core_exit.sh
+}
+
+# Rather than a one-pass sed parser, default to using a temporary directory
+tmpfile="${tmpdir}/postdetails-$(date +"%Y-%d-%m_%H-%M-%S").tmp"
+
+touch "${tmpfile}" || fn_bad_tmpfile
+
+# fn_display_details is found in the command_details.sh file (which
+# was sourced above). The output is parsed for passwords and other
+# confidential information. -CedarLUG
+
+# The numerous sed lines could certainly be condensed quite a bit,
+# but they are separated out to provide examples for how to add
+# additional criteria in a straight-forward manner.
+# (This was originally a sed one-liner.) -CedarLUG
+
+fn_display_details | sed -e 's/password="[^"]*/password="--stripped--/' |
+ sed -e 's/password "[^"]*/password "--stripped--/' |
+ sed -e 's/password: .*/password: --stripped--/' |
+ sed -e 's/gslt="[^"]*/gslt="--stripped--/' |
+ sed -e 's/gslt "[^"]*/gslt "--stripped--/' |
+ sed -e 's/pushbullettoken="[^"]*/pushbullettoken="--stripped--/' |
+ sed -e 's/pushbullettoken "[^"]*/pushbullettoken "--stripped--/' |
+ sed -e 's/authkey="[^"]*/authkey="--stripped--/' |
+ sed -e 's/authkey "[^"]*/authkey "--stripped--/' |
+ sed -e 's/authkey [A-Za-z0-9]\+/authkey --stripped--/' |
+ sed -e 's/rcts_strAdminPassword="[^"]*/rcts_strAdminPassword="--stripped--/' |
+ sed -e 's/rcts_strAdminPassword "[^"]*/rcts_strAdminPassword "--stripped--/' |
+ sed -e 's/sv_setsteamaccount [A-Za-z0-9]\+/sv_setsteamaccount --stripped--/' |
+ sed -e 's/sv_password="[^"]*/sv_password="--stripped--/' |
+ sed -e 's/sv_password "[^"]*/sv_password "--stripped--/' |
+ sed -e 's/zmq_stats_password="[^"]*/zmq_stats_password="--stripped--/' |
+ sed -e 's/zmq_stats_password "[^"]*/zmq_stats_password "--stripped--/' |
+ sed -e 's/zmq_rcon_password="[^"]*/zmq_rcon_password="--stripped--/' |
+ sed -e 's/zmq_rcon_password "[^"]*/zmq_rcon_password "--stripped--/' |
+ sed -e 's/pass="[^"]*/pass="--stripped--/' |
+ sed -e 's/pass "[^"]*/pass "--stripped--/' |
+ sed -e 's/rconServerPassword="[^"]*/rconServerPassword="--stripped--/' |
+ sed -e 's/rconServerPassword "[^"]*/rconServerPassword "--stripped--/' > "${tmpfile}"
+
+# strip off all console escape codes (colorization)
+sed -i -r "s/[\x1B,\x0B]\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" "${tmpfile}"
+
+# If the gameserver uses anonymous steam credentials, leave them displayed
+# in the output. Otherwise, strip these out as well.
+if ! grep -q "^steampass[= ]\"\"" "${tmpfile}" ; then
+ sed -i -e 's/steampass[= ]"[^"]*/steampass "--stripped--/' "${tmpfile}"
+fi
+if ! grep -q "^steamuser[= ]\"anonymous\"" "${tmpfile}" ; then
+ sed -i -e 's/steamuser[= ]"[^"]*/steamuser "--stripped--/' "${tmpfile}"
+fi
+
+
+if [ "${posttarget}" == "http://pastebin.com" ] ; then
+ fn_print_dots "Posting details to pastbin.com for ${postexpire}"
+ sleep 1
+ # grab the return from 'value' from an initial visit to pastebin.
+ csrftoken=$(curl -s "${posttarget}" |
+ sed -n 's/^.*input type="hidden" name="csrf_token_post" value="\(.*\)".*$/\1/p')
+ #
+ # Use the csrftoken to then post the content.
+ #
+ link=$(curl -s "${posttarget}/post.php" -D - -F "submit_hidden=submit_hidden" \
+ -F "post_key=${csrftoken}" -F "paste_expire_date=${postexpire}" \
+ -F "paste_name=${gamename} Debug Info" \
+ -F "paste_format=8" -F "paste_private=0" \
+ -F "paste_type=bash" -F "paste_code=<${tmpfile}" |
+ awk '/^location: / { print $2 }' | sed "s/\n//g")
+
+ # Output the resulting link.
+ fn_print_ok_nl "Posting details to pastbin.com for ${postexpire}"
+ echo " * url: ${posttarget}${link}"
+elif [ "${posttarget}" == "http://hastebin.com" ] ; then
+ fn_print_dots "Posting details to hastebin.com for ${postexpire}"
+ sleep 1
+ # hastebin is a bit simpler. If successful, the returned result
+ # should look like: {"something":"key"}, putting the reference that
+ # we need in "key". TODO - error handling. -CedarLUG
+ link=$(curl -s -d "$(<${tmpfile})" "${posttarget}/documents" | cut -d\" -f4)
+ fn_print_ok_nl "Posting details to hastebin.com for ${postexpire}"
+ echo " * url: ${posttarget}/${link}"
+else
+ fn_print_warn_nl Review the output in "${tmpfile}"
+ core_exit.sh
+fi
+
+# cleanup
+rm "${tmpfile}" || /bin/true
+core_exit.sh
diff --git a/lgsm/functions/core_functions.sh b/lgsm/functions/core_functions.sh
index de36e7a21..388846276 100644
--- a/lgsm/functions/core_functions.sh
+++ b/lgsm/functions/core_functions.sh
@@ -18,7 +18,7 @@ if [ "${emailnotification}" == "on" ]; then
emailalert="on"
fi
-# Code/functions for legacy servers
+## Code/functions for legacy servers
fn_functions(){
functionfile="${FUNCNAME}"
fn_fetch_function
@@ -29,13 +29,15 @@ functionfile="${FUNCNAME}"
fn_fetch_function
}
-# fn_fetch_core_dl also placed here to allow legacy servers to still download core functions
-if [ -z "${lgsmdir}" ]||[ -z "${functionsdir}" ]||[ -z "${libdir}" ]; then
+## In case older versions are missing these vars
+if [ -z "${lgsmdir}" ]||[ -z "${functionsdir}" ]||[ -z "${libdir}" ]||[ -z "${tmpdir}" ]; then
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+ tmpdir="${lgsmdir}/tmp"
fi
+## fn_fetch_core_dl placed here to allow legacy servers to still download core functions
fn_fetch_core_dl(){
github_file_url_dir="lgsm/functions"
github_file_url_name="${functionfile}"
@@ -78,6 +80,10 @@ fi
source "${filedir}/${filename}"
}
+# Creates tmp dir if missing
+if [ ! -d "${tmpdir}" ]; then
+ mkdir -p "${tmpdir}"
+fi
# Core
@@ -121,12 +127,15 @@ fn_fetch_function
}
command_postdetails.sh(){
-functionfile="${FUNCNAME}"
-tempffname=$functionfile
-fn_fetch_function
-functionfile="command_details.sh"
-fn_fetch_function
-functionfile=$tempffname
+ functionfile="${FUNCNAME}"
+ tempffname="${functionfile}"
+ # First, grab the command_postdetails.sh file
+ fn_fetch_function
+ # But then next, command_details.sh needs to also be pulled
+ # because command_postdetails.sh sources its functions -CedarLUG
+ functionfile="command_details.sh"
+ fn_fetch_function
+ functionfile="${tempffname}"
}
command_details.sh(){
diff --git a/lgsm/functions/core_getopt.sh b/lgsm/functions/core_getopt.sh
index 3b9140385..aed1890b2 100644
--- a/lgsm/functions/core_getopt.sh
+++ b/lgsm/functions/core_getopt.sh
@@ -29,6 +29,8 @@ case "${getopt}" in
command_test_alert.sh;;
dt|details)
command_details.sh;;
+ pd|postdetails)
+ command_postdetails.sh;;
b|backup)
command_backup.sh;;
c|console)
@@ -68,6 +70,7 @@ case "${getopt}" in
echo -e "${blue}monitor\t${default}m |Checks that the server is running."
echo -e "${blue}test-alert\t${default}ta |Sends test alert."
echo -e "${blue}details\t${default}dt |Displays useful information about the server."
+ echo -e "${blue}postdetails\t${default}pd |Post stripped details to pastebin (for support)"
echo -e "${blue}backup\t${default}b |Create archive of the server."
echo -e "${blue}console\t${default}c |Console allows you to access the live view of a server."
echo -e "${blue}debug\t${default}d |See the output of the server directly to your terminal."
@@ -95,6 +98,8 @@ case "${getopt}" in
command_test_alert.sh;;
dt|details)
command_details.sh;;
+ pd|postdetails)
+ command_postdetails.sh;;
b|backup)
command_backup.sh;;
pw|change-password)
@@ -130,6 +135,7 @@ case "${getopt}" in
echo -e "${blue}monitor\t${default}m |Checks that the server is running."
echo -e "${blue}test-alert\t${default}ta |Sends test alert."
echo -e "${blue}details\t${default}dt |Displays useful information about the server."
+ echo -e "${blue}postdetails\t${default}pd |Post stripped details to pastebin (for support)"
echo -e "${blue}change-password\t${default}pw |Changes TS3 serveradmin password."
echo -e "${blue}backup\t${default}b |Create archive of the server."
echo -e "${blue}install\t${default}i |Install the server."
@@ -156,6 +162,8 @@ case "${getopt}" in
command_test_alert.sh;;
dt|details)
command_details.sh;;
+ pd|postdetails)
+ command_postdetails.sh;;
b|backup)
command_backup.sh;;
c|console)
@@ -193,6 +201,7 @@ case "${getopt}" in
echo -e "${blue}monitor\t${default}m |Checks that the server is running."
echo -e "${blue}test-alert\t${default}ta |Sends test alert."
echo -e "${blue}details\t${default}dt |Displays useful infomation about the server."
+ echo -e "${blue}postdetails\t${default}pd |Post stripped details to pastebin (for support)"
echo -e "${blue}backup\t${default}b |Create archive of the server."
echo -e "${blue}console\t${default}c |Console allows you to access the live view of a server."
echo -e "${blue}debug\t${default}d |See the output of the server directly to your terminal."
@@ -220,6 +229,8 @@ case "${getopt}" in
command_test_alert.sh;;
dt|details)
command_details.sh;;
+ pd|postdetails)
+ command_postdetails.sh;;
b|backup)
command_backup.sh;;
dev|dev-debug)
@@ -251,6 +262,7 @@ case "${getopt}" in
echo -e "${blue}monitor\t${default}m |Checks that the server is running."
echo -e "${blue}test-alert\t${default}ta |Sends test alert."
echo -e "${blue}details\t${default}dt |Displays useful information about the server."
+ echo -e "${blue}postdetails\t${default}pd |Post stripped details to pastebin (for support)"
echo -e "${blue}backup\t${default}b |Create archive of the server."
echo -e "${blue}install\t${default}i |Install the server."
} | column -s $'\t' -t
@@ -280,6 +292,8 @@ case "${getopt}" in
command_test_alert.sh;;
dt|details)
command_details.sh;;
+ pd|postdetails)
+ command_postdetails.sh;;
b|backup)
command_backup.sh;;
c|console)
@@ -557,4 +571,4 @@ elif [ "${engine}" == "unreal" ]; then
else
fn_getopt_generic
fi
-core_exit.sh
\ No newline at end of file
+core_exit.sh
diff --git a/lgsm/functions/info_config.sh b/lgsm/functions/info_config.sh
index df744e414..8e339ffde 100644
--- a/lgsm/functions/info_config.sh
+++ b/lgsm/functions/info_config.sh
@@ -14,9 +14,6 @@ local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
# grep -v "foo" filter out lines that contain foo
# cut -f1 -d "/" remove everything after /
-unavailable="${red}UNAVAILABLE${default}"
-zero="${red}0${default}"
-
fn_info_config_avalanche(){
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
@@ -24,10 +21,11 @@ fn_info_config_avalanche(){
slots="${zero}"
port="${zero}"
else
- servername=$(grep "Name" "${servercfgfullpath}" | sed 's/Name//g' | tr -d '=", \n')
- serverpassword=$(grep "Password" "${servercfgfullpath}" | sed 's/Password//g' | tr -d '=", \n')
- slots=$(grep "MaxPlayers" "${servercfgfullpath}" | tr -cd '[:digit:]')
- port=$(grep "BindPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
+
+ servername=$(grep "Name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Name//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | xargs)
+ slots=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
+ port=$(grep "BindPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
# Not Set
servername=${servername:-"NOT SET"}
@@ -36,7 +34,7 @@ fn_info_config_avalanche(){
port=${port:-"0"}
# check if the ip exists in the config file. Failing this will fall back to the default.
- ipconfigcheck=$(grep "BindIP" "${servercfgfullpath}" | sed 's/BindIP//g' | tr -d '=", \n')
+ ipconfigcheck=$(grep "BindIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/BindIP//g' | tr -d '=\";,:' | xargs)
if [ -n "${ipconfigcheck}" ]; then
ip="${ipconfigcheck}"
fi
@@ -52,10 +50,10 @@ fn_info_config_dontstarve(){
tickrate="${zero}"
port="${zero}"
else
- servername=$(grep "default_server_name = " "${servercfgfullpath}" | sed 's/default_server_name = //g')
- serverpassword=$(grep "server_password = " "${servercfgfullpath}" | grep -v "#" | sed 's/server_password = //g')
+ servername=$(grep "default_server_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/default_server_name//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "server_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_password//g' | tr -d '=\";,:' | xargs)
slots=$(grep "max_players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- gamemode=$(grep "game_mode = " "${servercfgfullpath}" | grep -v "#" | sed 's/game_mode = //g')
+ gamemode=$(grep "game_mode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_mode//g' | tr -d '=\";,:' | xargs)
tickrate=$(grep "tick_rate" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
port=$(grep "server_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
@@ -76,21 +74,17 @@ fn_info_config_minecraft(){
rconport="${zero}"
slots="${zero}"
port="${zero}"
- gamemode="${zero}"
+ gamemode="${unavailable}"
gameworld="${unavailable}"
else
- # check if the ip exists in the config file. Failing this will fall back to the default.
- ipconfigcheck=$(grep "server-ip=" "${servercfgfullpath}" | sed 's/server-ip=//g')
- if [ -n "${ipconfigcheck}" ]; then
- ip="${ipconfigcheck}"
- fi
- servername=$(grep "motd=" "${servercfgfullpath}" | sed 's/motd=//g' | tr -d '=\";' | sed 's/\\n.*//g')
- rconpassword=$(grep "rcon.password=" "${servercfgfullpath}" | sed 's/rcon.password=//g' | tr -d '=\"; ')
- rconport=$(grep "rcon.port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- slots=$(grep "max-players=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- port=$(grep "server-port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- gamemode=$(grep "gamemode=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- gameworld=$(grep "level-name=" "${servercfgfullpath}" | sed 's/level-name=//g' | tr -d '=\"; ')
+
+ servername=$(grep "motd" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/motd//g' | tr -d '=\";,:' | xargs)
+ rconpassword=$(grep "rcon.password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon.password//g' | tr -d '=\";,:' | xargs)
+ rconport=$(grep "rcon.port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ slots=$(grep "max-players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ port=$(grep "server-port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | xargs)
# Not Set
servername=${servername:-"NOT SET"}
@@ -100,6 +94,12 @@ fn_info_config_minecraft(){
port=${port:-"NOT SET"}
gamemode=${gamemode:-"NOT SET"}
gameworld=${gameworld:-"NOT SET"}
+
+ # check if the ip exists in the config file. Failing this will fall back to the default.
+ ipconfigcheck=$(grep "server-ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server-ip//g' | tr -d '=\";,:' | xargs)
+ if [ -n "${ipconfigcheck}" ]; then
+ ip="${ipconfigcheck}"
+ fi
fi
}
@@ -112,12 +112,12 @@ fn_info_config_projectzomboid(){
port="${zero}"
gameworld="${unavailable}"
else
- servername=$(grep "PublicName=" "${servercfgfullpath}" | sed 's/PublicName=//g' | tr -d '=\";\n')
- serverpassword=$(grep "^Password=$" "${servercfgfullpath}" | sed 's/Password=//g' | tr -d '=\"; ')
- rconpassword=$(grep "RCONPassword=" "${servercfgfullpath}" | sed 's/RCONPassword=//g' | tr -d '=\"; ')
- slots=$(grep "MaxPlayers=" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "DefaultPort=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- gameworld=$(grep "Map=" "${servercfgfullpath}" | sed 's/Map=//g' | tr -d '\n')
+ servername=$(grep "PublicName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/PublicName//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Password" | sed -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | xargs)
+ rconpassword=$(grep "RCONPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/RCONPassword//g' | tr -d '=\";,:' | xargs)
+ slots=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ port=$(grep "DefaultPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ gameworld=$(grep "Map" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Map" | sed -e '/^#/d' -e 's/Map//g' | tr -d '=\";' | xargs)
# Not Set
servername=${servername:-"NOT SET"}
@@ -131,15 +131,19 @@ fn_info_config_projectzomboid(){
fn_info_config_idtech3(){
if [ ! -f "${servercfgfullpath}" ]; then
+ rconpassword="${unavailable}"
servername="${unavailable}"
serverpassword="${unavailable}"
+
slots="${zero}"
else
- servername=$(grep "set sv_hostname " "${servercfgfullpath}" | sed 's/set sv_hostname //g' | tr -d '=\"; ')
- serverpassword=$(grep "set g_password" "${servercfgfullpath}" | sed 's/set g_password//g' | tr -d '=\"; '| cut -f1 -d "/")
- slots=$(grep "set sv_maxClients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ rconpassword=$(grep "zmq_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set zmq_rcon_password//g' | tr -d '=\";,:' | xargs)
+ servername=$(grep "sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set sv_hostname//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/set g_password//g' | tr -d '=\";,:' | xargs)
+ slots=$(grep "sv_maxClients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
+ rconpassword=${rconpassword:-"NOT SET"}
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
slots=${slots:-"0"}
@@ -153,9 +157,9 @@ fn_info_config_realvirtuality(){
serverpassword="${unavailable}"
slots="${zero}"
else
- servername=$(grep "hostname" "${servercfgfullpath}" | grep -v "//" | awk -F '"' '{print $2}')
- adminpassword=$(grep "passwordAdmin" "${servercfgfullpath}" | grep -v "//" | sed 's/\passwordAdmin//g' | tr -d '=\"; ')
- serverpassword=$(grep "password =" "${servercfgfullpath}" | grep -v "//" | sed 's/\password//g' | tr -d '=\"; ')
+ servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | xargs)
+ adminpassword=$(grep "passwordAdmin" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/passwordAdmin//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/password//g' | tr -d '=\";,:' | xargs)
slots=$(grep "maxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
@@ -174,11 +178,11 @@ fn_info_config_seriousengine35(){
slots="${zero}"
port="${zero}"
else
- servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed 's/prj_strMultiplayerSessionName = //g' | tr -d '=\"; ')
- rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed 's/rcts_strAdminPassword = //g' | tr -d '=\"; ')
- gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | grep -v "#" | sed 's/gam_idGameMode//g' | tr -d '=\"; ')
+ servername=$(grep "prj_strMultiplayerSessionName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/prj_strMultiplayerSessionName//g' | tr -d '=\";,:' | xargs)
+ rconpassword=$(grep "rcts_strAdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/rcts_strAdminPassword//g' | tr -d '=\";,:' | xargs)
+ gamemode=$(grep "gam_idGameMode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/gam_idGameMode//g' | tr -d '=\";,:' | xargs)
slots=$(grep "gam_ctMaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
- port=$(grep "prj_uwPort" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
+ port=$(grep "prj_uwPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
servername=${servername:-"NOT SET"}
@@ -195,9 +199,9 @@ fn_info_config_source(){
serverpassword="${unavailable}"
rconpassword="${unavailable}"
else
- servername=$(grep "hostname" "${servercfgfullpath}" | sed 's/hostname //g' | sed 's/"//g'| cut -f1 -d "/")
- serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed 's/sv_password //g' | sed 's/"//g'| cut -f1 -d "/")
- rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed 's/rcon_password //g' | sed 's/"//g'| cut -f1 -d "/")
+ servername=$(grep "hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/hostname//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "sv_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/sv_password//g' | tr -d '=\";,:' | xargs)
+ rconpassword=$(grep "rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/rcon_password//g' | tr -d '=\";,:' | xargs)
# Not Set
servername=${servername:-"NOT SET"}
@@ -215,8 +219,8 @@ fn_info_config_starbound(){
rconport="21026"
slots="8"
else
- servername=$(grep "serverName" "${servercfgfullpath}" | sed 's/"serverName" \: //g' | grep -oP '"\K[^"]+(?=["])')
- rconpassword=$(grep "rconServerPassword" "${servercfgfullpath}" | sed 's/"rconServerPassword" \: //g' | grep -oP '"\K[^"]+(?=["])')
+ servername=$(grep "serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/serverName//g' | tr -d '=\";,:' | xargs)
+ rconpassword=$(grep "rconServerPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e 's/rconServerPassword//g' | tr -d '=\";,:' | xargs)
port=$(grep "gameServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
queryport=$(grep "queryServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
rconport=$(grep "rconServerPort" "${servercfgfullpath}" | tr -cd '[:digit:]')
@@ -239,20 +243,21 @@ fn_info_config_teamspeak3(){
queryport="10011"
fileport="30033"
else
- # check if the ip exists in the config file. Failing this will fall back to the default.
- ipconfigcheck=$(grep "voice_ip=" "${servercfgfullpath}" | sed 's/voice_ip=//g')
- if [ -n "${ipconfigcheck}" ]; then
- ip="${ipconfigcheck}"
- fi
- dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed 's/dbplugin=//g')
- port=$(grep "default_voice_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- queryport=$(grep "query_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- fileport=$(grep "filetransfer_port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/dbplugin=//g' | tr -d '=\";,:' | xargs)
+ port=$(grep "default_voice_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ queryport=$(grep "query_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ fileport=$(grep "filetransfer_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
port=${port:-"9987"}
queryport=${queryport:-"10011"}
fileport=${fileport:-"30033"}
+
+ # check if the ip exists in the config file. Failing this will fall back to the default.
+ ipconfigcheck=$(grep "voice_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/voice_ip//g' | tr -d '=\";,:' | xargs)
+ if [ -n "${ipconfigcheck}" ]; then
+ ip="${ipconfigcheck}"
+ fi
fi
}
@@ -262,19 +267,19 @@ fn_info_config_mumble(){
queryport="${port}"
servername="Mumble"
else
- # check if the ip exists in the config file. Failing this will fall back to the default.
- ipconfigcheck=$(cat "${servercfgfullpath}" | grep "host=" | awk -F'=' '{ print $2}')
- if [ -n "${ipconfigcheck}" ]; then
- ip="${ipconfigcheck}"
- fi
- port=$(cat "${servercfgfullpath}" | grep 'port=' | awk -F'=' '{ print $2 }')
+ port=$(grep "port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/port//g' | tr -d '=\";,:' | xargs)
queryport="${port}"
# Not Set
port=${port:-"64738"}
queryport=${queryport:-"64738"}
-
servername="Mumble Port ${port}"
+
+ # check if the ip exists in the config file. Failing this will fall back to the default.
+ ipconfigcheck=$(cat "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^;/d' -e 's/voice_ip//g' | tr -d '=\";,:' | xargs)
+ if [ -n "${ipconfigcheck}" ]; then
+ ip="${ipconfigcheck}"
+ fi
fi
}
@@ -286,11 +291,11 @@ fn_info_config_teeworlds(){
port="8303"
slots="12"
else
- servername=$(grep "sv_name" "${servercfgfullpath}" | sed 's/sv_name //g' | sed 's/"//g')
- serverpassword=$(grep "password " "${servercfgfullpath}" | awk '!/sv_rcon_password/'| sed 's/password //g' | tr -d '=\"; ')
- rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed 's/sv_rcon_password //g' | tr -d '=\"; ')
- port=$(grep "sv_port" "${servercfgfullpath}" | tr -cd '[:digit:]')
- slots=$(grep "sv_max_clients" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ servername=$(grep "sv_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^sv_name//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^password" | sed -e '/^#/d' -e 's/^password//g' | tr -d '=\";,:' | xargs)
+ rconpassword=$(grep "sv_rcon_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/^sv_rcon_password//g' | tr -d '=\";,:' | xargs)
+ port=$(grep "sv_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ slots=$(grep "sv_max_clients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
servername=${servername:-"NOT SET"}
@@ -308,10 +313,10 @@ fn_info_config_terraria(){
gameworld="${unavailable}"
slots="${zero}"
else
- servername=$(grep "worldname=" "${servercfgfullpath}" | sed 's/worldname=//g')
- port=$(grep "port=" "${servercfgfullpath}" | tr -cd '[:digit:]')
- gameworld=$(grep "world=" "${servercfgfullpath}" | sed 's/world=//g')
- slots=$(grep "maxplayers=" "${servercfgfullpath}" | sed 's/maxplayers=//g')
+ servername=$(grep "worldname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/worldname//g' | tr -d '=\";,:' | xargs)
+ port=$(grep "port" "${servercfgfullpath}" | tr -cd '[:digit:]')
+ gameworld=$(grep "world=" "${servercfgfullpath}" | grep -v "#" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/world=//g' | tr -d '=\";,:' | xargs)
+ slots=$(grep "maxplayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
# Not Set
servername=${servername:-"NOT SET"}
@@ -333,18 +338,18 @@ fn_info_config_unreal(){
webadminuser="${unavailable}"
webadminpass="${unavailable}"
else
- servername=$(grep "ServerName=" "${servercfgfullpath}" | sed 's/ServerName=//g')
- serverpassword=$(grep "GamePassword=" "${servercfgfullpath}" | sed 's/GamePassword=//g')
- adminpassword=$(grep "AdminPassword=" "${servercfgfullpath}" | sed 's/AdminPassword=//g')
- port=$(grep "Port=" "${servercfgfullpath}" | grep -v "Master" | grep -v "LAN" | grep -v "Proxy" | grep -v "Listen" | tr -d '\r' | tr -cd '[:digit:]')
- gsqueryport=$(grep "OldQueryPortNumber=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
- webadminenabled=$(grep "bEnabled=" "${servercfgfullpath}" | sed 's/bEnabled=//g' | tr -d '\r')
- webadminport=$(grep "ListenPort=" "${servercfgfullpath}" | tr -d '\r' | tr -cd '[:digit:]')
+ servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/ServerName//g' | tr -d '=\";,:' | xargs)
+ serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | xargs)
+ adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | xargs)
+ port=$(grep "Port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]')
+ gsqueryport=$(grep "OldQueryPortNumber" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
+ webadminenabled=$(grep "bEnabled" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | xargs)
+ webadminport=$(grep "ListenPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]')
if [ "${engine}" == "unreal" ]; then
- webadminuser=$(grep "AdminUsername=" "${servercfgfullpath}" | sed 's/AdminUsername=//g')
- webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 2 | grep "AdminPassword=" | sed 's/AdminPassword=//g')
+ webadminuser=$(grep "AdminUsername" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminUsername//g' | tr -d '=\";,:' | xargs)
+ webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 4 | grep "AdminPassword" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | xargs)
else
- webadminuser=$(grep "AdminName=" "${servercfgfullpath}" | sed 's/AdminName=//g')
+ webadminuser=$(grep "AdminName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminName//g' | tr -d '=\";,:' | xargs)
webadminpass="${adminpassword}"
fi
diff --git a/lgsm/functions/install_server_files.sh b/lgsm/functions/install_server_files.sh
index 65f32c134..e1b140bb8 100644
--- a/lgsm/functions/install_server_files.sh
+++ b/lgsm/functions/install_server_files.sh
@@ -10,19 +10,19 @@ local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_install_server_files(){
if [ "${gamename}" == "Unreal Tournament 99" ]; then
- fileurl="http://files.gameservermanagers.com/UnrealTournament99/ut99-server-451-ultimate-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; 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 2004" ]; then
- fileurl="http://files.gameservermanagers.com/UnrealTournament2004/ut2004-server-3339-ultimate-linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="ut2004-server-3339-ultimate-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="67c5e2cd9c2a4b04f163962ee41eff54"
+ fileurl="http://files.gameservermanagers.com/UnrealTournament2004/ut2004-server-3339-ultimate-linux.tar.bz2"; filedir="${tmpdir}"; filename="ut2004-server-3339-ultimate-linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="67c5e2cd9c2a4b04f163962ee41eff54"
elif [ "${gamename}" == "Unreal Tournament 3" ]; then
- fileurl="http://files.gameservermanagers.com/UnrealTournament3/UT3-linux-server-2.1.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="UT3-linux-server-2.1.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="6c22fcef9e2e03ed154df97569af540c"
+ 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="6c22fcef9e2e03ed154df97569af540c"
elif [ "${gamename}" == "Battlefield: 1942" ]; then
- fileurl="http://files.gameservermanagers.com/BattleField1942/bf1942_lnxded-1.61-hacked-to-1.612.full.tar.gz"; filedir="${lgsmdir}/tmp"; filename="bf1942_lnxded-1.61-hacked-to-1.612.full.tar.gz"; executecmd="noexecute" run="norun"; force="noforce"; md5="7e9d2538a62b228f2de7176b44659aa9"
+ fileurl="http://files.gameservermanagers.com/BattleField1942/bf1942_lnxded-1.61-hacked-to-1.612.full.tar.gz"; filedir="${tmpdir}"; filename="bf1942_lnxded-1.61-hacked-to-1.612.full.tar.gz"; executecmd="noexecute" run="norun"; force="noforce"; md5="7e9d2538a62b228f2de7176b44659aa9"
elif [ "${gamename}" == "Enemy Territory" ]; then
- fileurl="http://files.gameservermanagers.com/WolfensteinEnemyTerritory/enemy-territory.260b.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="enemy-territory.260b.tar.gz"; executecmd="noexecute" run="norun"; force="noforce"; md5="ded32053e470fe15d9403ec4a0ab7e89"
+ fileurl="http://files.gameservermanagers.com/WolfensteinEnemyTerritory/enemy-territory.260b.tar.bz2"; filedir="${tmpdir}"; filename="enemy-territory.260b.tar.gz"; executecmd="noexecute" run="norun"; force="noforce"; md5="ded32053e470fe15d9403ec4a0ab7e89"
elif [ "${gamename}" == "Unreal Tournament" ]; then
- fileurl="http://files.gameservermanagers.com/UnrealTournament/UnrealTournament-Server-XAN-3045522-Linux.zip"; filedir="${lgsmdir}/tmp"; filename="UnrealTournament-Server-XAN-3045522-Linux.zip"; executecmd="noexecute" run="norun"; force="noforce"; md5="553fed5645a9fc623e92563049bf79f6"
+ fileurl="http://files.gameservermanagers.com/UnrealTournament/UnrealTournament-Server-XAN-3045522-Linux.zip"; filedir="${tmpdir}"; filename="UnrealTournament-Server-XAN-3045522-Linux.zip"; executecmd="noexecute" run="norun"; force="noforce"; md5="553fed5645a9fc623e92563049bf79f6"
elif [ "${gamename}" == "GoldenEye: Source" ]; then
- fileurl="http://files.gameservermanagers.com/GoldenEyeSource/GoldenEye_Source_v5.0.1_full_server_linux.tar.bz2"; filedir="${lgsmdir}/tmp"; filename="GoldenEye_Source_v5.0.1_server_full_Linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="ea227a150300abe346e757380325f84c"
+ fileurl="http://files.gameservermanagers.com/GoldenEyeSource/GoldenEye_Source_v5.0.1_full_server_linux.tar.bz2"; filedir="${tmpdir}"; filename="GoldenEye_Source_v5.0.1_server_full_Linux.tar.bz2"; executecmd="noexecute" run="norun"; force="noforce"; md5="ea227a150300abe346e757380325f84c"
fi
fn_fetch_file "${fileurl}" "${filedir}" "${filename}" "${executecmd}" "${run}" "${force}" "${md5}"
fn_dl_extract "${filedir}" "${filename}" "${filesdir}"
diff --git a/lgsm/functions/update_minecraft.sh b/lgsm/functions/update_minecraft.sh
index f4e140d6e..717e798cd 100644
--- a/lgsm/functions/update_minecraft.sh
+++ b/lgsm/functions/update_minecraft.sh
@@ -9,10 +9,10 @@ local commandaction="Update"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_update_dl(){
- fn_fetch_file "https://s3.amazonaws.com/Minecraft.Download/versions/${availablebuild}/minecraft_server.${availablebuild}.jar" "${lgsmdir}/tmp" "minecraft_server.${availablebuild}.jar"
+ fn_fetch_file "https://s3.amazonaws.com/Minecraft.Download/versions/${availablebuild}/minecraft_server.${availablebuild}.jar" "${tmpdir}" "minecraft_server.${availablebuild}.jar"
echo -e "copying to ${filesdir}...\c"
fn_script_log "Copying to ${filesdir}"
- cp "${lgsmdir}/tmp/minecraft_server.${availablebuild}.jar" "${filesdir}/minecraft_server.jar"
+ cp "${tmpdir}/minecraft_server.${availablebuild}.jar" "${filesdir}/minecraft_server.jar"
local exitcode=$?
if [ ${exitcode} -eq 0 ]; then
fn_print_ok_eol_nl
diff --git a/lgsm/functions/update_mumble.sh b/lgsm/functions/update_mumble.sh
index 0a90384f7..338ad4545 100644
--- a/lgsm/functions/update_mumble.sh
+++ b/lgsm/functions/update_mumble.sh
@@ -10,11 +10,11 @@ local commandaction="Update"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_update_mumble_dl(){
- fn_fetch_file "https://github.com/mumble-voip/mumble/releases/download/${availablebuild}/murmur-static_${mumblearch}-${availablebuild}.tar.bz2" "${lgsmdir}/tmp" "murmur-static_${mumblearch}-${availablebuild}.tar.bz2"
- fn_dl_extract "${lgsmdir}/tmp" "murmur-static_${mumblearch}-${availablebuild}.tar.bz2" "${lgsmdir}/tmp"
+ fn_fetch_file "https://github.com/mumble-voip/mumble/releases/download/${availablebuild}/murmur-static_${mumblearch}-${availablebuild}.tar.bz2" "${tmpdir}" "murmur-static_${mumblearch}-${availablebuild}.tar.bz2"
+ fn_dl_extract "${tmpdir}" "murmur-static_${mumblearch}-${availablebuild}.tar.bz2" "${tmpdir}"
echo -e "copying to ${filesdir}...\c"
fn_script_log "Copying to ${filesdir}"
- cp -R "${lgsmdir}/tmp/murmur-static_${mumblearch}-${availablebuild}/"* "${filesdir}"
+ cp -R "${tmpdir}/murmur-static_${mumblearch}-${availablebuild}/"* "${filesdir}"
local exitcode=$?
if [ ${exitcode} -eq 0 ]; then
fn_print_ok_eol_nl
diff --git a/lgsm/functions/update_ts3.sh b/lgsm/functions/update_ts3.sh
index 6dfdced1a..5e897f7b9 100644
--- a/lgsm/functions/update_ts3.sh
+++ b/lgsm/functions/update_ts3.sh
@@ -9,11 +9,11 @@ local commandaction="Update"
local function_selfname="$(basename $(readlink -f "${BASH_SOURCE[0]}"))"
fn_update_ts3_dl(){
- fn_fetch_file "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${lgsmdir}/tmp" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
- fn_dl_extract "${lgsmdir}/tmp" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${lgsmdir}/tmp"
+ fn_fetch_file "http://dl.4players.de/ts/releases/${ts3_version_number}/teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${tmpdir}" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2"
+ fn_dl_extract "${tmpdir}" "teamspeak3-server_linux_${ts3arch}-${ts3_version_number}.tar.bz2" "${tmpdir}"
echo -e "copying to ${filesdir}...\c"
fn_script_log "Copying to ${filesdir}"
- cp -R "${lgsmdir}/tmp/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}"
+ cp -R "${tmpdir}/teamspeak3-server_linux_${ts3arch}/"* "${filesdir}"
local exitcode=$?
if [ ${exitcode} -eq 0 ]; then
fn_print_ok_eol_nl
@@ -86,16 +86,11 @@ fi
fn_update_ts3_availablebuild(){
# Gets latest build info.
- # Creates tmp dir if missing
- if [ ! -d "${lgsmdir}/tmp" ]; then
- mkdir -p "${lgsmdir}/tmp"
- fi
-
# Grabs all version numbers but not in correct order.
- wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > "${lgsmdir}/tmp/.ts3_version_numbers_unsorted.tmp"
+ wget "http://dl.4players.de/ts/releases/?C=M;O=D" -q -O -| grep -i dir | egrep -o '.*\/<\/a>' | egrep -o '[0-9\.?]+'|uniq > "${tmpdir}/.ts3_version_numbers_unsorted.tmp"
# Sort version numbers
- cat "${lgsmdir}/tmp/.ts3_version_numbers_unsorted.tmp" | sort -r --version-sort -o "${lgsmdir}/tmp/.ts3_version_numbers_sorted.tmp"
+ cat "${tmpdir}/.ts3_version_numbers_unsorted.tmp" | sort -r --version-sort -o "${tmpdir}/.ts3_version_numbers_sorted.tmp"
# Finds directory with most recent server version.
while read ts3_version_number; do
@@ -105,11 +100,11 @@ fn_update_ts3_availablebuild(){
# Break while-loop, if the latest release could be found.
break
fi
- done < "${lgsmdir}/tmp/.ts3_version_numbers_sorted.tmp"
+ done < "${tmpdir}/.ts3_version_numbers_sorted.tmp"
# Tidy up
- rm -f "${lgsmdir}/tmp/.ts3_version_numbers_unsorted.tmp"
- rm -f "${lgsmdir}/tmp/.ts3_version_numbers_sorted.tmp"
+ rm -f "${tmpdir}/.ts3_version_numbers_unsorted.tmp"
+ rm -f "${tmpdir}/.ts3_version_numbers_sorted.tmp"
# Checks availablebuild info is available
if [ -z "${availablebuild}" ]; then
diff --git a/tests/tests_jc2server.sh b/tests/tests_jc2server.sh
index dc6104b31..bc7516427 100644
--- a/tests/tests_jc2server.sh
+++ b/tests/tests_jc2server.sh
@@ -61,6 +61,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"
diff --git a/tests/tests_ts3server.sh b/tests/tests_ts3server.sh
index da9c7808a..3189ec872 100644
--- a/tests/tests_ts3server.sh
+++ b/tests/tests_ts3server.sh
@@ -54,6 +54,7 @@ lockselfname=".${servicename}.lock"
lgsmdir="${rootdir}/lgsm"
functionsdir="${lgsmdir}/functions"
libdir="${lgsmdir}/lib"
+tmpdir="${lgsmdir}/tmp"
filesdir="${rootdir}/serverfiles"
systemdir="${filesdir}"
executabledir="${filesdir}"