From 64e9e8246214d50ef187f89750d4cb6d8572d9ad Mon Sep 17 00:00:00 2001
From: Armin <50357737+PlayMTL@users.noreply.github.com>
Date: Sun, 4 Feb 2024 21:07:49 +0100
Subject: [PATCH 001/154] feat(pw): port & steamport setting for palworld
(#4479)
* fix: servername variable assignment for sf and unt
The servername variable was incorrectly assigned using the selfname variable instead of the correct servername variable. This has been fixed to ensure accurate information is displayed for each game type.
* add: port & steamport setting for palworld
---------
Co-authored-by: Daniel Gibbs
---
lgsm/config-default/config-lgsm/pwserver/_default.cfg | 5 +++--
lgsm/modules/info_game.sh | 6 +++---
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index b3990ca7a..cd318aacc 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -11,12 +11,13 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
servername="LinuxGSM"
-# Use game server config file to edit, used for port check script (workaround)
+# For community servers (serverlist) you need to change these settings (publicip & publicport) in the gameserver config file aswell
port="8211"
+steamport="27015"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
## Game Server Docs | https://tech.palworldgame.com/dedicated-server-guide#linux
-startparameters="EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}'"
+startparameters="EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}' -port='${port}' -queryport='${steamport}'"
#### LinuxGSM Settings ####
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index f456fb0bf..c5c5e5d7a 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -621,7 +621,7 @@ fn_info_game_pvr() {
fn_info_game_pw() {
servername="${servername:-"NOT SET"}"
port="${port:-"0"}"
- steamport="27015"
+ steamport="${steamport:-"0"}"
unknownport="1985"
}
@@ -1978,7 +1978,7 @@ fn_info_game_sdtd() {
# Config Type: Parameters (with an ini)
fn_info_game_sf() {
# Parameters
- servername="${selfname:-"NOT SET"}"
+ servername="${servername:-"NOT SET"}"
port="${port:-"0"}"
queryport="${queryport:-"0"}"
beaconport="${beaconport:-"0"}"
@@ -2131,7 +2131,7 @@ fn_info_game_tw() {
# Config Type: Parameters
fn_info_game_unt() {
- servername="${selfname:-"NOT SET"}"
+ servername="${servername:-"NOT SET"}"
port="${port:-"0"}"
queryport="${port}"
steamport="$((port + 1))"
From 8e9493b83c2e538c58ac71ff70ed6530aeed03f6 Mon Sep 17 00:00:00 2001
From: Awesomerly
Date: Sun, 4 Feb 2024 15:08:34 -0500
Subject: [PATCH 002/154] chore: update Stripper:Source to latest version
(#4474)
* fix: servername variable assignment for sf and unt
The servername variable was incorrectly assigned using the selfname variable instead of the correct servername variable. This has been fixed to ensure accurate information is displayed for each game type.
* chore: update Stripper:Source to latest version
---------
Co-authored-by: Daniel Gibbs
---
lgsm/modules/mods_list.sh | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index bd6eaff24..c9a316055 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -71,6 +71,12 @@ steamworksscrapeurl="https://users.alliedmods.net/~kyles/builds/SteamWorks"
steamworkslatestfile=$(curl --connect-timeout 10 -sL ${steamworksscrapeurl} | grep -m 1 linux | cut -d '"' -f 4)
steamworksdownloadurl="${steamworksscrapeurl}/${steamworkslatestfile}"
steamworksurl="${steamworksdownloadurl}"
+# Stripper:Source
+stripperversion="1.2.2-git141"
+stripperlatestfile="stripper-${stripperversion}-linux.tar.gz"
+stripperdownloadurl="http://www.bailopan.net/stripper/snapshots/1.2/${stripperlatestfile}"
+stripperurl="${stripperdownloadurl}"
+
# CS:GO Mods
get5lastbuild=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/get5/releases/latest | jq '.assets[] |select(.browser_download_url | endswith(".tar.gz"))')
get5latestfile=$(echo -e "${get5lastbuild}" | jq -r '.name')
@@ -149,7 +155,7 @@ mod_info_ts_amxx=(MOD "amxmodxts" "AMX Mod X: The Specialists" "${amxxtsurl}" "$
mod_info_metamodsource=(MOD "metamodsource" "Metamod: Source" "${metamodsourceurl}" "${metamodsourcelatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/metamod/metaplugins.ini;" "source;" "GAMES" "NOTGAMES" "https://www.sourcemm.net" "Plugins Framework")
mod_info_sourcemod=(MOD "sourcemod" "SourceMod" "${sourcemodurl}" "${sourcemodlatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "source;" "GAMES" "NOTGAMES" "http://www.sourcemod.net" "Admin Features (requires Metamod: Source)")
mod_info_steamworks=(MOD "steamworks" "SteamWorks" "${steamworksurl}" "${steamworkslatestfile}" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/KyleSanderson/SteamWorks" "Exposing SteamWorks functions to SourcePawn")
-mod_info_stripper=(MOD "stripper" "Stripper Source" "http://www.bailopan.net/stripper/snapshots/1.2/stripper-1.2.2-git129-linux.tar.gz" "stripper-1.2.2-git129-linux.tar.gz" "0" "LowercaseOff" "${systemdir}" "addons/stripper/maps;" "ENGINES" "Counter-Strike: Global Offensive;Counter-Strike: Source;Day of Defeat: Source;Half Life: Deathmatch;Half Life 2: Deathmatch;Insurgency;Left 4 Dead;Left 4 Dead 2;Nuclear Dawn;Team Fortress 2;" "NOTGAMES" "http://www.bailopan.net/stripper/" "Add or remove objects from map (requires MetaMod)")
+mod_info_stripper=(MOD "stripper" "Stripper Source" "${stripperurl}" "${stripperlatestfile}" "0" "LowercaseOff" "${systemdir}" "addons/stripper/maps;" "ENGINES" "Counter-Strike: Global Offensive;Counter-Strike: Source;Day of Defeat: Source;Half Life: Deathmatch;Half Life 2: Deathmatch;Insurgency;Left 4 Dead;Left 4 Dead 2;Nuclear Dawn;Team Fortress 2;" "NOTGAMES" "http://www.bailopan.net/stripper/" "Add or remove objects from map (requires MetaMod)")
# CS:GO Mods
mod_info_gokz=(MOD "gokz" "GOKZ" "${gokzlatestlink}" "${gokzlatestfile}" "0" "LowercaseOff" "${systemdir}" "cfg;addons/sourcemod/configs;" "ENGINES" "Counter-Strike: Global Offensive;" "NOTGAMES" "https://github.com/KZGlobalTeam/gokz" "GOKZ ${gokzlatestversion} - Implements the KZ game mode (requires SourceMod and MetaMod)")
From f60025181641aa77b47d9c697abcba4c2a402734 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 4 Feb 2024 20:13:54 +0000
Subject: [PATCH 003/154] chore: add branch filtering for workflow triggers
This commit adds branch filtering to the "Details Check" and "Update Check" workflows. Now, these workflows will only be triggered on the "develop" branch. This change ensures that the workflows are executed in a controlled environment and reduces unnecessary executions on other branches.
---
.github/workflows/details-check.yml | 2 ++
.github/workflows/update-check.yml | 2 ++
2 files changed, 4 insertions(+)
diff --git a/.github/workflows/details-check.yml b/.github/workflows/details-check.yml
index d940cfbc8..5c5448885 100644
--- a/.github/workflows/details-check.yml
+++ b/.github/workflows/details-check.yml
@@ -3,6 +3,8 @@ name: Details Check
on:
workflow_dispatch:
push:
+ branches:
+ - develop
concurrency:
group: details-check-${{ github.ref_name }}
diff --git a/.github/workflows/update-check.yml b/.github/workflows/update-check.yml
index b93fb2c47..932e3ea2a 100644
--- a/.github/workflows/update-check.yml
+++ b/.github/workflows/update-check.yml
@@ -3,6 +3,8 @@ name: Update Check
on:
workflow_dispatch:
push:
+ branches:
+ - develop
concurrency:
group: update-check-${{ github.ref_name }}
From 94849a1479a1a2f05ff4f130b15acb49dcaeb837 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 4 Feb 2024 20:17:02 +0000
Subject: [PATCH 004/154] Release v24.1.3
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 62f3d8f4e..1afac30c7 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.1.2"
+modulesversion="v24.1.3"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 844aca991..1072101a0 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.1.2"
+version="v24.1.3"
shortname="core"
gameservername="core"
commandname="CORE"
From e997c94f7578cf552cecb9b8bd394054bc94fefb Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 10 Feb 2024 22:53:58 +0000
Subject: [PATCH 005/154] refactor: rename details-check-generate-matrix.sh
The commit renames the file `detals-check-generate-matrix.sh` to `details-check-generate-matrix.sh`. This change ensures consistency and improves clarity in the codebase.
---
...heck-generate-matrix.sh => details-check-generate-matrix.sh} | 0
.github/workflows/details-check.yml | 2 +-
2 files changed, 1 insertion(+), 1 deletion(-)
rename .github/workflows/{detals-check-generate-matrix.sh => details-check-generate-matrix.sh} (100%)
diff --git a/.github/workflows/detals-check-generate-matrix.sh b/.github/workflows/details-check-generate-matrix.sh
similarity index 100%
rename from .github/workflows/detals-check-generate-matrix.sh
rename to .github/workflows/details-check-generate-matrix.sh
diff --git a/.github/workflows/details-check.yml b/.github/workflows/details-check.yml
index 5c5448885..2a04dc6ac 100644
--- a/.github/workflows/details-check.yml
+++ b/.github/workflows/details-check.yml
@@ -21,7 +21,7 @@ jobs:
uses: actions/checkout@v4
- name: Generate matrix with generate-matrix.sh
- run: chmod +x .github/workflows/detals-check-generate-matrix.sh; .github/workflows/detals-check-generate-matrix.sh
+ run: chmod +x .github/workflows/details-check-generate-matrix.sh; .github/workflows/details-check-generate-matrix.sh
- name: Set Matrix
id: set-matrix
From 40a79bd19874b12276bd2d8f36d874a5a7622d55 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 11 Feb 2024 01:20:19 +0000
Subject: [PATCH 006/154] fix(ti): update default map
The default map in the tiserver configuration file has been updated from "/Game/TheIsle/Maps/Game/Isla_Spiro/Isla_Spiro" to "/Game/TheIsle/Maps/Game/Gateway/Gateway". This change ensures that the server starts with the correct default map.
---
lgsm/config-default/config-lgsm/tiserver/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/tiserver/_default.cfg b/lgsm/config-default/config-lgsm/tiserver/_default.cfg
index 3141983c9..96a3726fd 100644
--- a/lgsm/config-default/config-lgsm/tiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tiserver/_default.cfg
@@ -11,7 +11,7 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
-defaultmap="/Game/TheIsle/Maps/Game/Isla_Spiro/Isla_Spiro"
+defaultmap="/Game/TheIsle/Maps/Game/Gateway/Gateway"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
## Game Server Docs | https://isle.fandom.com/wiki/The_Isle_Server_Settings_and_Configuration
From 72e330b2bad3d6b4beb764ffa90fb69a82d7bc10 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Wed, 21 Feb 2024 22:29:45 +0100
Subject: [PATCH 007/154] fix(check_deps): clarify to run the generated command
as root (#4490)
* fix: servername variable assignment for sf and unt
The servername variable was incorrectly assigned using the selfname variable instead of the correct servername variable. This has been fixed to ensure accurate information is displayed for each game type.
* fix(check_deps): clarify to run the generated command as root
---------
Co-authored-by: Daniel Gibbs
---
lgsm/modules/check_deps.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index f92a60840..df5cb9478 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -204,11 +204,11 @@ fn_install_missing_deps() {
# If automatic dependency install is unavailable.
if [ "${autodepinstall}" != "0" ]; then
if [ "$(command -v apt 2> /dev/null)" ]; then
- echo -e "${i386installcommand}sudo apt update; sudo apt install ${array_deps_missing[*]}"
+ echo -e " Run: '${green}${i386installcommand}sudo apt update; sudo apt install ${array_deps_missing[*]}${default}' as root to install missing dependencies."
elif [ "$(command -v dnf 2> /dev/null)" ]; then
- echo -e "sudo dnf install ${array_deps_missing[*]}"
+ echo -e " Run: '${green}sudo dnf install ${array_deps_missing[*]}${default}' as root to install missing dependencies."
elif [ "$(command -v yum 2> /dev/null)" ]; then
- echo -e "sudo yum install ${array_deps_missing[*]}"
+ echo -e " Run: '${green}sudo yum install ${array_deps_missing[*]}${default}' as root to install missing dependencies."
fi
fi
From ab3404c188d1286282d085bd4b064010fd0ff201 Mon Sep 17 00:00:00 2001
From: Antonin CLAUZIER
Date: Thu, 22 Feb 2024 01:30:15 +0400
Subject: [PATCH 008/154] feat(dayz): switch appid to stable release (#4502)
* feat(dayzserver): switch appid to stable release
* feat(dayzserver): add steam login
---
lgsm/config-default/config-lgsm/dayzserver/_default.cfg | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/dayzserver/_default.cfg b/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
index 0d5bf5e3e..82901c2cd 100644
--- a/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
@@ -8,6 +8,10 @@
#### Game Server Settings ####
+## SteamCMD Login | https://docs.linuxgsm.com/steamcmd#steamcmd-login
+steamuser="username"
+steampass='password'
+
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="2302"
@@ -122,7 +126,7 @@ sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
-appid="1042420"
+appid="223350"
steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
From e281f5a64bc2adfec52c9a4918450ad5d2605547 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 21 Feb 2024 21:31:15 +0000
Subject: [PATCH 009/154] build(deps): bump webfactory/ssh-agent from 0.8.0 to
0.9.0 (#4489)
Bumps [webfactory/ssh-agent](https://github.com/webfactory/ssh-agent) from 0.8.0 to 0.9.0.
- [Release notes](https://github.com/webfactory/ssh-agent/releases)
- [Changelog](https://github.com/webfactory/ssh-agent/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webfactory/ssh-agent/compare/v0.8.0...v0.9.0)
---
updated-dependencies:
- dependency-name: webfactory/ssh-agent
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/git-sync.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/git-sync.yml b/.github/workflows/git-sync.yml
index 2f223f370..544ba6892 100644
--- a/.github/workflows/git-sync.yml
+++ b/.github/workflows/git-sync.yml
@@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: SSH Agent
- uses: webfactory/ssh-agent@v0.8.0
+ uses: webfactory/ssh-agent@v0.9.0
with:
ssh-private-key: ${{ secrets.BITBUCKET_SECRET }}
From 1528cba08d55c76fc667afb98279e7077d6a56d0 Mon Sep 17 00:00:00 2001
From: BertBrenner <42405825+BertBrenner@users.noreply.github.com>
Date: Wed, 21 Feb 2024 22:32:10 +0100
Subject: [PATCH 010/154] fix: distro.sh: line 100: [: : integer expression
expected (#4486)
* fix: servername variable assignment for sf and unt
The servername variable was incorrectly assigned using the selfname variable instead of the correct servername variable. This has been fixed to ensure accurate information is displayed for each game type.
* [FIX] #4465
---------
Co-authored-by: Daniel Gibbs
---
lgsm/modules/info_distro.sh | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lgsm/modules/info_distro.sh b/lgsm/modules/info_distro.sh
index a4e3521f8..4465d6cdb 100644
--- a/lgsm/modules/info_distro.sh
+++ b/lgsm/modules/info_distro.sh
@@ -30,13 +30,13 @@ for distro_info in "${distro_info_array[@]}"; do
if [ -f "/etc/os-release" ] && [ "${distro_info}" == "os-release" ]; then
distroname="$(grep "PRETTY_NAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. Ubuntu 22.04.3 LTS
distroversion="$(grep "VERSION_ID" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. 22.04
+ distroid="$(grep "ID=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. ubuntu
+ distroidlike="$(grep "ID_LIKE=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. debian
+ distrocodename="$(grep "VERSION_CODENAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. jammy
# Special var for rhel like distros to remove point in number e.g 8.4 to just 8.
if [[ "${distroidlike}" == *"rhel"* ]] || [ "${distroid}" == "rhel" ]; then
distroversionrh="$(sed -nr 's/^VERSION_ID="([0-9]*).+?"/\1/p' /etc/os-release)" # e.g. 8
fi
- distroid="$(grep "ID=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. ubuntu
- distroidlike="$(grep "ID_LIKE=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. debian
- distrocodename="$(grep "VERSION_CODENAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. jammy
elif [ "$(command -v lsb_release 2> /dev/null)" ] && [ "${distro_info}" == "lsb_release" ]; then
if [ -z "${distroname}" ]; then
distroname="$(lsb_release -sd)" # e.g. Ubuntu 22.04.3 LTS
From e492e09fa69daef6ec27a12308b88638bdca924a Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 21 Feb 2024 21:34:03 +0000
Subject: [PATCH 011/154] Release v24.1.4
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 1afac30c7..70a452127 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.1.3"
+modulesversion="v24.1.4"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 1072101a0..e3c663754 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.1.3"
+version="v24.1.4"
shortname="core"
gameservername="core"
commandname="CORE"
From b5614f5cbfd1c41aa5bb3282273a996ed16ca626 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Wed, 21 Feb 2024 21:40:54 +0000
Subject: [PATCH 012/154] build(deps): bump github/issue-labeler from 3.3 to
3.4 (#4478)
Bumps [github/issue-labeler](https://github.com/github/issue-labeler) from 3.3 to 3.4.
- [Release notes](https://github.com/github/issue-labeler/releases)
- [Commits](https://github.com/github/issue-labeler/compare/v3.3...v3.4)
---
updated-dependencies:
- dependency-name: github/issue-labeler
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/labeler.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/labeler.yml b/.github/workflows/labeler.yml
index b8bf63084..4a946a861 100644
--- a/.github/workflows/labeler.yml
+++ b/.github/workflows/labeler.yml
@@ -15,7 +15,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Issue Labeler
- uses: github/issue-labeler@v3.3
+ uses: github/issue-labeler@v3.4
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/labeler.yml
From 476ed02bec8da3d4fecb2e6bba956a298fe5e3f5 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Mon, 26 Feb 2024 14:57:55 +0100
Subject: [PATCH 013/154] feat(backup): add parallel backup creation using pigz
(#4509)
---
lgsm/data/almalinux-8.csv | 2 +-
lgsm/data/almalinux-9.csv | 2 +-
lgsm/data/centos-7.csv | 2 +-
lgsm/data/centos-8.csv | 2 +-
lgsm/data/centos-9.csv | 2 +-
lgsm/data/debian-10.csv | 2 +-
lgsm/data/debian-11.csv | 2 +-
lgsm/data/debian-12.csv | 2 +-
lgsm/data/debian-9.csv | 2 +-
lgsm/data/rhel-7.csv | 2 +-
lgsm/data/rhel-8.csv | 2 +-
lgsm/data/rhel-9.csv | 2 +-
lgsm/data/rocky-8.csv | 2 +-
lgsm/data/rocky-9.csv | 2 +-
lgsm/data/ubuntu-16.04.csv | 2 +-
lgsm/data/ubuntu-18.04.csv | 2 +-
lgsm/data/ubuntu-20.04.csv | 2 +-
lgsm/data/ubuntu-22.04.csv | 2 +-
lgsm/data/ubuntu-23.04.csv | 2 +-
lgsm/data/ubuntu-23.10.csv | 2 +-
lgsm/modules/check.sh | 2 +-
lgsm/modules/command_backup.sh | 2 +-
22 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index 53021ec30..c156eb053 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 8f643487c..faacfa915 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python3,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index 5315d8de0..84df6f5c6 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python3,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index 53021ec30..c156eb053 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index 8f643487c..faacfa915 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python3,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index a2d1ee665..5f7f5f261 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -1,7 +1,7 @@
ac
ahl
ahl2
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
ark
arma3
armar,libcurl4
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index bdf03879e..3ecedd538 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index cc884a6f8..0ff8b391d 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index ccefafcc2..cb5eea4a1 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,wget,xz-utils
steamcmd,lib32gcc1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 14cc292ac..2b3be410d 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index 53021ec30..c156eb053 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 8f643487c..faacfa915 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python3,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index 53021ec30..c156eb053 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 8f643487c..faacfa915 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
+all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,pigz,python3,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index e50ea48c0..9d88fde5c 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index 5294e6757..a0b809b05 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index f864b0d0a..092792fa3 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index c010ac60a..21bab16cb 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 1a52e301e..a29f403d7 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 1a52e301e..a29f403d7 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -1,4 +1,4 @@
-all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
ac
ahl
diff --git a/lgsm/modules/check.sh b/lgsm/modules/check.sh
index 1b8796e47..66b44aec3 100644
--- a/lgsm/modules/check.sh
+++ b/lgsm/modules/check.sh
@@ -54,7 +54,7 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
-allowed_commands_array=(DEBUG START)
+allowed_commands_array=(BACKUP DEBUG START)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_deps.sh
diff --git a/lgsm/modules/command_backup.sh b/lgsm/modules/command_backup.sh
index e0ef3f0a1..a3e1bbe7f 100644
--- a/lgsm/modules/command_backup.sh
+++ b/lgsm/modules/command_backup.sh
@@ -126,7 +126,7 @@ fn_backup_compression() {
core_exit.sh
fi
- tar -czf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" --exclude "${tmpdir}" ./.
+ tar --use-compress-program=pigz -cf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" --exclude "${tmpdir}" ./.
local exitcode=$?
if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol
From fce9f65d6a27516308d60ec6c5bcedd24fe3ed43 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 26 Feb 2024 15:55:12 +0000
Subject: [PATCH 014/154] feat(monitor): prepare for gamedig 5 (#4510)
* feat: gamedig 5
* install gamedig in lgsm dir if node exists
* and
* use local gamedig version
* local
* palworld
* pw query port
* mbe
* fix ro
system
system
a
* public ip
* jc2m
* fix(ti): update default map
The default map in the tiserver configuration file has been updated from "/Game/TheIsle/Maps/Game/Isla_Spiro/Isla_Spiro" to "/Game/TheIsle/Maps/Game/Gateway/Gateway". This change ensures that the server starts with the correct default map.
* fix: _default.cfg NOT SET
* download package.json and run npm install
* update samp
* disable query for squad
* correct name
* feat: update querymode and querytype in server configs
Changed querymode to 3 and set querytype to "eco" for ecoserver.
Updated querymode to 2 and changed querytype to "protocol-valve" for sdtdserver.
* feat: add new port command for bfv game
Added a new port command for the "bfv" game in the info_messages script.
* queryport eco
* add eco rconport
* adding message
* if node 16 or above
* rename to check_gamedig
---
.../config-lgsm/ecoserver/_default.cfg | 4 +-
.../config-lgsm/jc2server/_default.cfg | 2 +-
.../config-lgsm/mcbserver/_default.cfg | 2 +-
.../config-lgsm/pwserver/_default.cfg | 4 +-
.../config-lgsm/sampserver/_default.cfg | 2 +-
.../config-lgsm/sdtdserver/_default.cfg | 2 +-
.../config-lgsm/squadserver/_default.cfg | 4 +-
lgsm/modules/check.sh | 7 +
lgsm/modules/check_gamedig.sh | 15 +
lgsm/modules/check_ip.sh | 8 +-
lgsm/modules/command_dev_query_raw.sh | 2 +-
lgsm/modules/command_install.sh | 3 +
lgsm/modules/command_monitor.sh | 2 +-
lgsm/modules/command_update_linuxgsm.sh | 1 +
lgsm/modules/core_modules.sh | 5 +
lgsm/modules/fix.sh | 2 +-
lgsm/modules/fix_ro.sh | 134 +++-
lgsm/modules/info_game.sh | 4 +
lgsm/modules/info_messages.sh | 4 +
lgsm/modules/query_gamedig.sh | 13 +-
lgsm/modules/query_gsquery.py | 40 +-
package-lock.json | 639 ++++++++++++++++++
package.json | 5 +-
23 files changed, 839 insertions(+), 65 deletions(-)
create mode 100644 lgsm/modules/check_gamedig.sh
diff --git a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
index 470b43d06..794a6ed69 100644
--- a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
@@ -131,8 +131,8 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="1"
-querytype=""
+querymode="3"
+querytype="eco"
## Console type
consoleverbose="yes"
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index caa40d93a..da9b4f40a 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -132,7 +132,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="jc2mp"
+querytype="jc2m"
## Console type
consoleverbose="yes"
diff --git a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
index 586575d10..db2bbf86d 100644
--- a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
@@ -125,7 +125,7 @@ stopmode="5"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="minecraftbe"
+querytype="mbe"
## Console type
consoleverbose="yes"
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index cd318aacc..eaf5d775c 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -139,8 +139,8 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="1"
-querytype="1"
+querymode="3"
+querytype="palworld"
## Console type
consoleverbose="yes"
diff --git a/lgsm/config-default/config-lgsm/sampserver/_default.cfg b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
index 510b9a689..0888064ba 100644
--- a/lgsm/config-default/config-lgsm/sampserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
@@ -123,7 +123,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="3"
-querytype="samp"
+querytype="gtasam"
## Console type
consoleverbose="no"
diff --git a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
index 61cd85a8a..24cd2c0ac 100644
--- a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
@@ -134,7 +134,7 @@ stopmode="8"
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="5"
+querymode="2"
querytype="protocol-valve"
## Console type
diff --git a/lgsm/config-default/config-lgsm/squadserver/_default.cfg b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
index 09c0e94b1..55bc2bf44 100644
--- a/lgsm/config-default/config-lgsm/squadserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
@@ -136,8 +136,8 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="2"
-querytype="protocol-valve"
+querymode="1"
+querytype=""
## Console type
consoleverbose="yes"
diff --git a/lgsm/modules/check.sh b/lgsm/modules/check.sh
index 66b44aec3..2a63df3f3 100644
--- a/lgsm/modules/check.sh
+++ b/lgsm/modules/check.sh
@@ -99,3 +99,10 @@ for allowed_command in "${allowed_commands_array[@]}"; do
check_system_requirements.sh
fi
done
+
+allowed_commands_array=(DETAILS MONITOR START STOP UPDATE VALIDATE POST-DETAILS)
+for allowed_command in "${allowed_commands_array[@]}"; do
+ if [ "${allowed_command}" == "${commandname}" ]; then
+ check_gamedig.sh
+ fi
+done
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
new file mode 100644
index 000000000..4155e6a69
--- /dev/null
+++ b/lgsm/modules/check_gamedig.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+# LinuxGSM check_gamedig.sh module
+# Author: Daniel Gibbs
+# Contributors: http://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Installs nodejs and gamedig
+
+if [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ] && [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
+ echo -e ""
+ echo -e "${bold}${lightyellow}Installing Gamedig${default}"
+ fn_script_log_info "Installing Gamedig"
+ cd "${lgsmdir}" || exit
+ wget -N --no-check-certificate "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${githubbranch}/package.json"
+ npm install
+fi
diff --git a/lgsm/modules/check_ip.sh b/lgsm/modules/check_ip.sh
index 7671429cd..bf0418f74 100644
--- a/lgsm/modules/check_ip.sh
+++ b/lgsm/modules/check_ip.sh
@@ -38,25 +38,25 @@ function fn_is_valid_ip() {
# If the IP variable has been set by user.
if fn_is_valid_ip "${ip}"; then
- queryips=("${ip}")
+ queryips=("${ip}" "${publicip}")
httpip=("${ip}")
telnetip=("${ip}")
# If the game config has an IP set.
elif fn_is_valid_ip "${configip}"; then
- queryips=("${configip}")
+ queryips=("${configip}" "${publicip}")
ip="${configip}"
httpip=("${configip}")
telnetip=("${configip}")
# If there is only 1 server IP address.
# Some IP details can automatically use the one IP.
elif [ "${#current_ips[@]}" == "1" ]; then
- queryips=("127.0.0.1" "${current_ips[@]}")
+ queryips=("127.0.0.1" "${current_ips[@]}" "${publicip}")
ip="0.0.0.0"
httpip=("${current_ips[@]}")
telnetip=("${current_ips[@]}")
# If no ip is set by the user and server has more than one IP.
else
- queryips=("127.0.0.1" "${current_ips[@]}")
+ queryips=("127.0.0.1" "${current_ips[@]}" "${publicip}")
ip="0.0.0.0"
httpip=("${ip}")
telnetip=("${ip}")
diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh
index 2314d75b4..ae49a1b85 100644
--- a/lgsm/modules/command_dev_query_raw.sh
+++ b/lgsm/modules/command_dev_query_raw.sh
@@ -207,7 +207,7 @@ echo -e ""
echo -e "${lightgreen}Gamedig Raw Output${default}"
fn_messages_separator
echo -e ""
-if [ ! "$(command -v gamedig 2> /dev/null)" ]; then
+if [ ! "$(command -v gamedig 2> /dev/null)" ] || [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
fn_print_failure_nl "gamedig not installed"
fi
if [ ! "$(command -v jq 2> /dev/null)" ]; then
diff --git a/lgsm/modules/command_install.sh b/lgsm/modules/command_install.sh
index e8cba7560..c3bf27c61 100644
--- a/lgsm/modules/command_install.sh
+++ b/lgsm/modules/command_install.sh
@@ -30,6 +30,9 @@ else
install_server_files.sh
fi
+ # Install gamedig
+ check_gamedig.sh
+
# Configuration.
install_config.sh
if [ -v gslt ]; then
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index a18154948..e9baf71e5 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -369,7 +369,7 @@ fn_monitor_loop() {
for querymethod in "${query_methods_array[@]}"; do
# Will check if gamedig is installed and bypass if not.
if [ "${querymethod}" == "gamedig" ]; then
- if [ "$(command -v gamedig 2> /dev/null)" ] && [ "$(command -v jq 2> /dev/null)" ]; then
+ if [ "$(command -v gamedig 2> /dev/null)" ] || [ -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ] && [ "$(command -v jq 2> /dev/null)" ]; then
if [ -z "${monitorpass}" ]; then
fn_monitor_query
fi
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index 9cd66430c..d20204187 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -13,6 +13,7 @@ fn_firstcommand_set
fn_print_dots ""
check.sh
info_distro.sh
+info_game.sh
fn_script_log_info "Updating LinuxGSM"
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 70a452127..9852268f0 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -714,6 +714,11 @@ install_factorio_save.sh() {
fn_fetch_module
}
+check_gamedig.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
install_dst_token.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
diff --git a/lgsm/modules/fix.sh b/lgsm/modules/fix.sh
index 280112728..dbb8e3545 100644
--- a/lgsm/modules/fix.sh
+++ b/lgsm/modules/fix.sh
@@ -52,7 +52,7 @@ fn_apply_fix() {
fi
}
-apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr rust rw samp sdtd sfc sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
+apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr ro rust rw samp sdtd sfc sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
apply_post_install_fix=(av kf kf2 ro ut2k4 ut ut3)
# validate registered fixes for safe development
diff --git a/lgsm/modules/fix_ro.sh b/lgsm/modules/fix_ro.sh
index 72864d699..21663a9ea 100644
--- a/lgsm/modules/fix_ro.sh
+++ b/lgsm/modules/fix_ro.sh
@@ -3,37 +3,115 @@
# Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib
# Website: https://linuxgsm.com
-# Description: Resolves issues with Red Orchestra.
+# Description: Resolves issues with Red Orchestra: Ostfront 41-45.
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-echo -e "applying webinterface ROOst.css fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
+# echo -e "applying WebAdmin ROOst.css fix."
+# echo -e "http://forums.tripwireinteractive.com/showpost.php?p=585435&postcount=13"
sed -i 's/none}/none;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
sed -i 's/underline}/underline;/g' "${serverfiles}/Web/ServerAdmin/ROOst.css"
-fn_sleep_time
-echo -e "applying webinterface CharSet fix."
-echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
+# echo -e "applying WebAdmin CharSet fix."
+# echo -e "http://forums.tripwireinteractive.com/showpost.php?p=442340&postcount=1"
sed -i 's/CharSet="iso-8859-1"/CharSet="utf-8"/g' "${systemdir}/uweb.int"
-fn_sleep_time
-echo -e "applying Steam AppID fix."
-sed -i 's/1210/1200/g' "${systemdir}/steam_appid.txt"
-fn_sleep_time
-echo -e "applying server name fix."
-fn_sleep_time
-echo -e "forcing server restart..."
-fn_sleep_time
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-fn_sleep_time_5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
-exitbypass=1
-command_start.sh
-fn_firstcommand_reset
-fn_sleep_time_5
-exitbypass=1
-command_stop.sh
-fn_firstcommand_reset
+
+# get md5sum of steamclient.so
+if [ -f "${serverfiles}/system/steamclient.so" ]; then
+ steamclientmd5=$(md5sum "${serverfiles}/system/steamclient.so" | awk '{print $1;}')
+fi
+#get md5sum of libtier0_s.so
+if [ -f "${serverfiles}/system/libtier0_s.so" ]; then
+ libtier0_smd5=$(md5sum "${serverfiles}/system/libtier0_s.so" | awk '{print $1;}')
+fi
+#get md5sum of libvstdlib_s.so
+if [ -f "${serverfiles}/system/libvstdlib_s.so" ]; then
+ libvstdlib_smd5=$(md5sum "${serverfiles}/system/libvstdlib_s.so" | awk '{print $1;}')
+fi
+
+# get md5sum of steamclient.so from steamcmd
+if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
+ steamcmdsteamclientmd5=$(md5sum "${HOME}/.steam/steamcmd/linux32/steamclient.so" | awk '{print $1;}')
+elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
+ steamcmdsteamclientmd5=$(md5sum "${steamcmddir}/linux32/steamclient.so" | awk '{print $1;}')
+elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
+ steamcmdsteamclientmd5=$(md5sum "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" | awk '{print $1;}')
+fi
+
+# get md5sum of libtier0_s.so from steamcmd
+if [ -f "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" ]; then
+ steamcmdlibtier0_smd5=$(md5sum "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" | awk '{print $1;}')
+elif [ -f "${steamcmddir}/linux32/libtier0_s.so" ]; then
+ steamcmdlibtier0_smd5=$(md5sum "${steamcmddir}/linux32/libtier0_s.so" | awk '{print $1;}')
+elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" ]; then
+ steamcmdlibtier0_smd5=$(md5sum "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" | awk '{print $1;}')
+fi
+
+# get md5sum of libvstdlib_s.so from steamcmd
+if [ -f "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" ]; then
+ steamcmdlibvstdlib_smd5=$(md5sum "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" | awk '{print $1;}')
+elif [ -f "${steamcmddir}/linux32/libvstdlib_s.so" ]; then
+ steamcmdlibvstdlib_smd5=$(md5sum "${steamcmddir}/linux32/libvstdlib_s.so" | awk '{print $1;}')
+elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" ]; then
+ steamcmdlibvstdlib_smd5=$(md5sum "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" | awk '{print $1;}')
+fi
+
+if [ ! -f "${serverfiles}/system/steamclient.so" ] || [ "${steamcmdsteamclientmd5}" != "${steamclientmd5}" ]; then
+ fixname="steamclient.so x86"
+ fn_fix_msg_start
+ if [ -f "${HOME}/.steam/steamcmd/linux32/steamclient.so" ]; then
+ cp "${HOME}/.steam/steamcmd/linux32/steamclient.so" "${serverfiles}/system/steamclient.so"
+ elif [ -f "${steamcmddir}/linux32/steamclient.so" ]; then
+ cp "${steamcmddir}/linux32/steamclient.so" "${serverfiles}/system/steamclient.so"
+ elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" ]; then
+ cp "${HOME}/.local/share/Steam/steamcmd/linux32/steamclient.so" "${serverfiles}/system/steamclient.so"
+ fi
+ fn_fix_msg_end
+fi
+
+if [ ! -f "${serverfiles}/system/libtier0_s.so" ] || [ "${steamcmdlibtier0_smd5}" != "${libtier0_smd5}" ]; then
+ fixname="libtier0_s.so"
+ fn_fix_msg_start
+ if [ -f "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" ]; then
+ cp "${HOME}/.steam/steamcmd/linux32/libtier0_s.so" "${serverfiles}/system/libtier0_s.so"
+ elif [ -f "${steamcmddir}/linux32/libtier0_s.so" ]; then
+ cp "${steamcmddir}/linux32/libtier0_s.so" "${serverfiles}/system/libtier0_s.so"
+ elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" ]; then
+ cp "${HOME}/.local/share/Steam/steamcmd/linux32/libtier0_s.so" "${serverfiles}/system/libtier0_s.so"
+ fi
+ fn_fix_msg_end
+fi
+
+if [ ! -f "${serverfiles}/system/libvstdlib_s.so" ] || [ "${steamcmdlibvstdlib_smd5}" != "${libvstdlib_smd5}" ]; then
+ fixname="libvstdlib_s.so"
+ fn_fix_msg_start
+ if [ -f "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" ]; then
+ cp "${HOME}/.steam/steamcmd/linux32/libvstdlib_s.so" "${serverfiles}/system/libvstdlib_s.so"
+ elif [ -f "${steamcmddir}/linux32/libvstdlib_s.so" ]; then
+ cp "${steamcmddir}/linux32/libvstdlib_s.so" "${serverfiles}/system/libvstdlib_s.so"
+ elif [ -f "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" ]; then
+ cp "${HOME}/.local/share/Steam/steamcmd/linux32/libvstdlib_s.so" "${serverfiles}/system/libvstdlib_s.so"
+ fi
+ fn_fix_msg_end
+fi
+
+# if running install command
+if [ "${commandname}" == "INSTALL" ]; then
+ echo -e "applying server name fix."
+ fn_sleep_time
+ echo -e "forcing server restart..."
+ fn_sleep_time
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ fn_sleep_time_5
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ fn_sleep_time_5
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+fi
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index c5c5e5d7a..e943a9d91 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -621,6 +621,7 @@ fn_info_game_pvr() {
fn_info_game_pw() {
servername="${servername:-"NOT SET"}"
port="${port:-"0"}"
+ queryport="${port:-"0"}"
steamport="${steamport:-"0"}"
unknownport="1985"
}
@@ -1242,6 +1243,7 @@ fn_info_game_eco() {
fn_info_game_json "httpport" ".WebServerPort"
fn_info_game_json "maxplayers" ".MaxConnections"
fn_info_game_json "port" ".GameServerPort"
+ fn_info_game_json "rconport" ".RconServerPort"
fn_info_game_json "servername" ".Description"
fn_info_game_json "serverpassword" ".Password"
fn_info_game_json "tickrate" ".Rate"
@@ -1250,6 +1252,8 @@ fn_info_game_eco() {
httpport="${httpport:-"0"}"
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
+ queryport="${port:-"0"}"
+ rconport="${rconport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
tickrate="${tickrate:-"0"}"
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index f619c964e..c5d03919c 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -692,6 +692,8 @@ fn_info_messages_ports() {
portcommand="ss -tuplwn | grep AvorionServer"
elif [ "${shortname}" == "bf1942" ]; then
portcommand="ss -tuplwn | grep bf1942_lnxded"
+ elif [ "${shortname}" == "bfv" ]; then
+ portcommand="ss -tuplwn | grep bfv_linded"
elif [ "${shortname}" == "dayz" ]; then
portcommand="ss -tuplwn | grep enfMain"
elif [ "${shortname}" == "q4" ]; then
@@ -1015,7 +1017,9 @@ fn_info_messages_eco() {
{
fn_port "header"
fn_port "Game" port udp
+ fn_port "Query" queryport udp
fn_port "Web Interface" httpport tcp
+ fn_port "RCON" rconport tcp
} | column -s $'\t' -t
}
diff --git a/lgsm/modules/query_gamedig.sh b/lgsm/modules/query_gamedig.sh
index 28f70a3b7..efac18d45 100644
--- a/lgsm/modules/query_gamedig.sh
+++ b/lgsm/modules/query_gamedig.sh
@@ -10,7 +10,14 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Default query status to failure. Will be changed to 0 if query is successful.
querystatus="2"
# Check if gamedig and jq are installed.
-if [ "$(command -v gamedig 2> /dev/null)" ] && [ "$(command -v jq 2> /dev/null)" ]; then
+
+if [ -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
+ gamedigbinary="${lgsmdir}/node_modules/gamedig/bin/gamedig.js"
+else
+ gamedigbinary="gamedig"
+fi
+
+if [ "$(command -v "${gamedigbinary}" 2> /dev/null)" ] && [ "$(command -v jq 2> /dev/null)" ]; then
# will bypass query if server offline.
check_status.sh
@@ -20,8 +27,8 @@ if [ "$(command -v gamedig 2> /dev/null)" ] && [ "$(command -v jq 2> /dev/null)"
queryport="${port}"
fi
# checks if query is working null = pass.
- gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" \"${queryip}:${queryport}\"|jq")
- gamedigraw=$(gamedig --type "${querytype}" "${queryip}:${queryport}")
+ gamedigcmd=$(echo -e "${gamedigbinary} --type \"${querytype}\" \"${queryip}:${queryport}\"|jq")
+ gamedigraw=$(${gamedigbinary} --type "${querytype}" "${queryip}:${queryport}")
querystatus=$(echo "${gamedigraw}" | jq '.error|length')
if [ "${querytype}" == "teamspeak3" ]; then
diff --git a/lgsm/modules/query_gsquery.py b/lgsm/modules/query_gsquery.py
index 8da93ada4..788789f0a 100644
--- a/lgsm/modules/query_gsquery.py
+++ b/lgsm/modules/query_gsquery.py
@@ -10,23 +10,26 @@ import argparse
import socket
import sys
-engine_types=('protocol-valve','protocol-quake2','protocol-quake3','protocol-gamespy1','protocol-unreal2','ut3','minecraft','minecraftbe','jc2mp','mumbleping','soldat','teeworlds')
+engine_types = ('protocol-valve', 'protocol-quake2', 'protocol-quake3', 'protocol-gamespy1',
+ 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2m', 'mumbleping', 'soldat', 'teeworlds')
+
class gsquery:
server_response_timeout = 2
default_buffer_length = 1024
- sourcequery=('protocol-valve','avalanche3.0','barotrauma','madness','quakelive','realvirtuality','refractor','source','goldsrc','spark','starbound','unity3d','unreal4','wurm')
- idtech2query=('protocol-quake2','idtech2','quake','iw2.0')
- idtech3query=('protocol-quake3','iw3.0','ioquake3','qfusion')
- minecraftquery=('minecraft','lwjgl2')
- minecraftbequery=('minecraftbe',)
- jc2mpquery=('jc2mp',)
- mumblequery=('mumbleping',)
- soldatquery=('soldat',)
- twquery=('teeworlds',)
- unrealquery=('protocol-gamespy1','unreal')
- unreal2query=('protocol-unreal2','unreal2')
- unreal3query=('ut3','unreal3')
+ sourcequery = ('protocol-valve', 'avalanche3.0', 'barotrauma', 'madness', 'quakelive', 'realvirtuality',
+ 'refractor', 'source', 'goldsrc', 'spark', 'starbound', 'unity3d', 'unreal4', 'wurm')
+ idtech2query = ('protocol-quake2', 'idtech2', 'quake', 'iw2.0')
+ idtech3query = ('protocol-quake3', 'iw3.0', 'ioquake3', 'qfusion')
+ minecraftquery = ('minecraft', 'lwjgl2')
+ minecraftbequery = ('minecraftbe',)
+ jc2mquery = ('jc2m',)
+ mumblequery = ('mumbleping',)
+ soldatquery = ('soldat',)
+ twquery = ('teeworlds',)
+ unrealquery = ('protocol-gamespy1', 'unreal')
+ unreal2query = ('protocol-unreal2', 'unreal2')
+ unreal3query = ('ut3', 'unreal3')
def __init__(self, arguments):
self.argument = arguments
@@ -37,7 +40,7 @@ class gsquery:
self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
elif self.argument.engine in self.idtech3query:
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
- elif self.argument.engine in self.jc2mpquery:
+ elif self.argument.engine in self.jc2mquery:
self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
elif self.argument.engine in self.minecraftquery:
self.query_prompt_string = b'\xFE\xFD\x09\x3d\x54\x1f\x93'
@@ -48,7 +51,8 @@ class gsquery:
elif self.argument.engine in self.soldatquery:
self.query_prompt_string = b'\x69\x00'
elif self.argument.engine in self.twquery:
- self.query_prompt_string = b'\x04\x00\x00\xff\xff\xff\xff\x05' + bytearray(511)
+ self.query_prompt_string = b'\x04\x00\x00\xff\xff\xff\xff\x05' + \
+ bytearray(511)
elif self.argument.engine in self.unrealquery:
self.query_prompt_string = b'\x5C\x69\x6E\x66\x6F\x5C'
elif self.argument.engine in self.unreal2query:
@@ -74,7 +78,8 @@ class gsquery:
connection = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
connection.settimeout(self.server_response_timeout)
try:
- self.connected = connection.connect((self.argument.address, int(self.argument.port)))
+ self.connected = connection.connect(
+ (self.argument.address, int(self.argument.port)))
except socket.timeout:
self.fatal_error('Request timed out', 1)
except Exception:
@@ -95,6 +100,7 @@ class gsquery:
else:
self.exit_success(str(self.response))
+
def parse_args():
parser = argparse.ArgumentParser(
description='Allows querying of various game servers.',
@@ -142,10 +148,12 @@ def parse_args():
)
return parser.parse_args()
+
def main():
arguments = parse_args()
server = gsquery(arguments)
server.responding()
+
if __name__ == '__main__':
main()
diff --git a/package-lock.json b/package-lock.json
index 669e4f59d..076a14533 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -6,17 +6,503 @@
"": {
"name": "linuxgsm",
"license": "MIT",
+ "dependencies": {
+ "gamedig": "^5.0.0-beta.2"
+ },
"devDependencies": {
"prettier": "^3.0.3",
"prettier-plugin-sh": "^0.13.1"
}
},
+ "node_modules/@sindresorhus/is": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz",
+ "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/is?sponsor=1"
+ }
+ },
+ "node_modules/@szmarczak/http-timer": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-5.0.1.tgz",
+ "integrity": "sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw==",
+ "dependencies": {
+ "defer-to-connect": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/@types/http-cache-semantics": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz",
+ "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA=="
+ },
+ "node_modules/any-promise": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
+ "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
+ },
+ "node_modules/barse": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/barse/-/barse-0.4.3.tgz",
+ "integrity": "sha512-UEpvriJqAn8zuVinYICuKoPttZy3XxXEoqX/V2uYAL4zzJRuNzCK3+20nAu3YUIa2U7G53kf90wfBIp9/A+Odw==",
+ "dependencies": {
+ "readable-stream": "~1.0.2"
+ }
+ },
+ "node_modules/boolbase": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+ "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="
+ },
+ "node_modules/cacheable-lookup": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz",
+ "integrity": "sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w==",
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/cacheable-request": {
+ "version": "10.2.14",
+ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz",
+ "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==",
+ "dependencies": {
+ "@types/http-cache-semantics": "^4.0.2",
+ "get-stream": "^6.0.1",
+ "http-cache-semantics": "^4.1.1",
+ "keyv": "^4.5.3",
+ "mimic-response": "^4.0.0",
+ "normalize-url": "^8.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ }
+ },
+ "node_modules/cheerio": {
+ "version": "1.0.0-rc.12",
+ "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.12.tgz",
+ "integrity": "sha512-VqR8m68vM46BNnuZ5NtnGBKIE/DfN0cRIzg9n40EIq9NOv90ayxLBXA8fXC5gquFRGJSTRqBq25Jt2ECLR431Q==",
+ "dependencies": {
+ "cheerio-select": "^2.1.0",
+ "dom-serializer": "^2.0.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "htmlparser2": "^8.0.1",
+ "parse5": "^7.0.0",
+ "parse5-htmlparser2-tree-adapter": "^7.0.0"
+ },
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/cheerio?sponsor=1"
+ }
+ },
+ "node_modules/cheerio-select": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cheerio-select/-/cheerio-select-2.1.0.tgz",
+ "integrity": "sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-select": "^5.1.0",
+ "css-what": "^6.1.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/commander": {
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
+ },
+ "node_modules/css-select": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
+ "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
+ "dependencies": {
+ "boolbase": "^1.0.0",
+ "css-what": "^6.1.0",
+ "domhandler": "^5.0.2",
+ "domutils": "^3.0.1",
+ "nth-check": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/css-what": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
+ "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
+ "engines": {
+ "node": ">= 6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/fb55"
+ }
+ },
+ "node_modules/decompress-response": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
+ "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
+ "dependencies": {
+ "mimic-response": "^3.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/decompress-response/node_modules/mimic-response": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
+ "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/defer-to-connect": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz",
+ "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/dom-serializer": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
+ "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.2",
+ "entities": "^4.2.0"
+ },
+ "funding": {
+ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1"
+ }
+ },
+ "node_modules/domelementtype": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ]
+ },
+ "node_modules/domhandler": {
+ "version": "5.0.3",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
+ "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
+ "dependencies": {
+ "domelementtype": "^2.3.0"
+ },
+ "engines": {
+ "node": ">= 4"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domhandler?sponsor=1"
+ }
+ },
+ "node_modules/domutils": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
+ "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
+ "dependencies": {
+ "dom-serializer": "^2.0.0",
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/domutils?sponsor=1"
+ }
+ },
+ "node_modules/entities": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
+ "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/event-to-promise": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/event-to-promise/-/event-to-promise-0.7.0.tgz",
+ "integrity": "sha512-VOBBfyaADfe378ZzG0tgkzmsvzUyeU5arehrFzNRt5yaASUDshgctTwSrPI17ocAwR3+YftsxRClHF+GBKFByQ==",
+ "deprecated": "Use promise-toolbox/fromEvent instead"
+ },
+ "node_modules/form-data-encoder": {
+ "version": "2.1.4",
+ "resolved": "https://registry.npmjs.org/form-data-encoder/-/form-data-encoder-2.1.4.tgz",
+ "integrity": "sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==",
+ "engines": {
+ "node": ">= 14.17"
+ }
+ },
+ "node_modules/gamedig": {
+ "version": "5.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gamedig/-/gamedig-5.0.0-beta.2.tgz",
+ "integrity": "sha512-YsHoGdb6rXyzdErakd9eSJvUAZCa8Hy+nQpiWZMps158wOovsH35Yrr/Y9wCvn1FDm6NJnHhQYkvtk3zhlmKWQ==",
+ "dependencies": {
+ "cheerio": "^1.0.0-rc.12",
+ "gbxremote": "^0.2.1",
+ "got": "^13.0.0",
+ "iconv-lite": "^0.6.3",
+ "long": "^5.2.3",
+ "minimist": "^1.2.8",
+ "punycode": "^2.3.0",
+ "seek-bzip": "^2.0.0",
+ "varint": "^6.0.0"
+ },
+ "bin": {
+ "gamedig": "bin/gamedig.js"
+ },
+ "engines": {
+ "node": ">=16.20.0"
+ }
+ },
+ "node_modules/gbxremote": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/gbxremote/-/gbxremote-0.2.1.tgz",
+ "integrity": "sha512-SMehu6Y6ndq2Qgp9VxAb8Np3f+UUD+RWoW2SAMaxzGS96rWXyr4T1GGkecO0HHtxeH1m7pEh4FJWB8a/6aM2XQ==",
+ "dependencies": {
+ "any-promise": "^1.1.0",
+ "barse": "~0.4.2",
+ "event-to-promise": "^0.7.0",
+ "string-to-stream": "^1.0.1",
+ "xmlrpc": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/got": {
+ "version": "13.0.0",
+ "resolved": "https://registry.npmjs.org/got/-/got-13.0.0.tgz",
+ "integrity": "sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA==",
+ "dependencies": {
+ "@sindresorhus/is": "^5.2.0",
+ "@szmarczak/http-timer": "^5.0.1",
+ "cacheable-lookup": "^7.0.0",
+ "cacheable-request": "^10.2.8",
+ "decompress-response": "^6.0.0",
+ "form-data-encoder": "^2.1.2",
+ "get-stream": "^6.0.1",
+ "http2-wrapper": "^2.1.10",
+ "lowercase-keys": "^3.0.0",
+ "p-cancelable": "^3.0.0",
+ "responselike": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/got?sponsor=1"
+ }
+ },
+ "node_modules/htmlparser2": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
+ "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
+ "funding": [
+ "https://github.com/fb55/htmlparser2?sponsor=1",
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fb55"
+ }
+ ],
+ "dependencies": {
+ "domelementtype": "^2.3.0",
+ "domhandler": "^5.0.3",
+ "domutils": "^3.0.1",
+ "entities": "^4.4.0"
+ }
+ },
+ "node_modules/http-cache-semantics": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz",
+ "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ=="
+ },
+ "node_modules/http2-wrapper": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-2.2.1.tgz",
+ "integrity": "sha512-V5nVw1PAOgfI3Lmeaj2Exmeg7fenjhRUgz1lPSezy1CuhPYbgQtbQj4jZfEAEMlaL+vupsvhjqCyjzob0yxsmQ==",
+ "dependencies": {
+ "quick-lru": "^5.1.1",
+ "resolve-alpn": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=10.19.0"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+ },
+ "node_modules/isarray": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/long": {
+ "version": "5.2.3",
+ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz",
+ "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q=="
+ },
+ "node_modules/lowercase-keys": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz",
+ "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mimic-response": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz",
+ "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==",
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/mvdan-sh": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/mvdan-sh/-/mvdan-sh-0.10.1.tgz",
"integrity": "sha512-kMbrH0EObaKmK3nVRKUIIya1dpASHIEusM13S4V1ViHFuxuNxCo+arxoa6j/dbV22YBGjl7UKJm9QQKJ2Crzhg==",
"dev": true
},
+ "node_modules/normalize-url": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.0.tgz",
+ "integrity": "sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw==",
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/nth-check": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
+ "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
+ "dependencies": {
+ "boolbase": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/nth-check?sponsor=1"
+ }
+ },
+ "node_modules/p-cancelable": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz",
+ "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==",
+ "engines": {
+ "node": ">=12.20"
+ }
+ },
+ "node_modules/parse5": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.2.tgz",
+ "integrity": "sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==",
+ "dependencies": {
+ "entities": "^4.4.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.0.0.tgz",
+ "integrity": "sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==",
+ "dependencies": {
+ "domhandler": "^5.0.2",
+ "parse5": "^7.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/prettier": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
@@ -51,6 +537,87 @@
"prettier": "^3.0.0"
}
},
+ "node_modules/process-nextick-args": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/quick-lru": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
+ "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/readable-stream": {
+ "version": "1.0.34",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
+ "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.1",
+ "isarray": "0.0.1",
+ "string_decoder": "~0.10.x"
+ }
+ },
+ "node_modules/resolve-alpn": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz",
+ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g=="
+ },
+ "node_modules/responselike": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz",
+ "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==",
+ "dependencies": {
+ "lowercase-keys": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=14.16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/safe-buffer": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+ },
+ "node_modules/safer-buffer": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ },
+ "node_modules/sax": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
+ },
+ "node_modules/seek-bzip": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-2.0.0.tgz",
+ "integrity": "sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==",
+ "dependencies": {
+ "commander": "^6.0.0"
+ },
+ "bin": {
+ "seek-bunzip": "bin/seek-bunzip",
+ "seek-table": "bin/seek-bzip-table"
+ }
+ },
"node_modules/sh-syntax": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/sh-syntax/-/sh-syntax-0.4.1.tgz",
@@ -66,11 +633,83 @@
"url": "https://opencollective.com/unts"
}
},
+ "node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+ },
+ "node_modules/string-to-stream": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz",
+ "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==",
+ "dependencies": {
+ "inherits": "^2.0.1",
+ "readable-stream": "^2.1.0"
+ }
+ },
+ "node_modules/string-to-stream/node_modules/isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
+ "node_modules/string-to-stream/node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "dependencies": {
+ "core-util-is": "~1.0.0",
+ "inherits": "~2.0.3",
+ "isarray": "~1.0.0",
+ "process-nextick-args": "~2.0.0",
+ "safe-buffer": "~5.1.1",
+ "string_decoder": "~1.1.1",
+ "util-deprecate": "~1.0.1"
+ }
+ },
+ "node_modules/string-to-stream/node_modules/string_decoder": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
+ },
"node_modules/tslib": {
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==",
"dev": true
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
+ },
+ "node_modules/varint": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz",
+ "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg=="
+ },
+ "node_modules/xmlbuilder": {
+ "version": "8.2.2",
+ "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-8.2.2.tgz",
+ "integrity": "sha512-eKRAFz04jghooy8muekqzo8uCSVNeyRedbuJrp0fovbLIi7wlsYtdUn3vBAAPq2Y3/0xMz2WMEUQ8yhVVO9Stw==",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/xmlrpc": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/xmlrpc/-/xmlrpc-1.3.2.tgz",
+ "integrity": "sha512-jQf5gbrP6wvzN71fgkcPPkF4bF/Wyovd7Xdff8d6/ihxYmgETQYSuTc+Hl+tsh/jmgPLro/Aro48LMFlIyEKKQ==",
+ "dependencies": {
+ "sax": "1.2.x",
+ "xmlbuilder": "8.2.x"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.0.0"
+ }
}
}
}
diff --git a/package.json b/package.json
index 89bb70244..d4146ee20 100644
--- a/package.json
+++ b/package.json
@@ -20,5 +20,8 @@
"bugs": {
"url": "https://github.com/GameServerManagers/LinuxGSM/issues"
},
- "homepage": "https://github.com/GameServerManagers/LinuxGSM#readme"
+ "homepage": "https://github.com/GameServerManagers/LinuxGSM#readme",
+ "dependencies": {
+ "gamedig": "^5.0.0-beta.2"
+ }
}
From 1f50055f5ac0e0bed0ea01f82f82ef4dca3deec2 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 28 Feb 2024 22:05:42 +0000
Subject: [PATCH 015/154] feat: ignore .swp files when doing permissions check
a .swp file is a temp file created by vim. If a file is being edited by a non linuxgsm user then this could cause a permissions issue. Adding this exception to prevent this issue
---
lgsm/modules/check_permissions.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index 572b403cc..31c64cd17 100644
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -14,12 +14,12 @@ fn_check_ownership() {
fi
fi
if [ -d "${modulesdir}" ]; then
- if [ "$(find "${modulesdir}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
+ if [ "$(find "${modulesdir}" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
funcownissue=1
fi
fi
if [ -d "${serverfiles}" ]; then
- if [ "$(find "${serverfiles}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
+ if [ "$(find "${serverfiles}" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
filesownissue=1
fi
fi
From a2406a510c97b639dc20782d352855fbdc86fb12 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 28 Feb 2024 23:15:12 +0000
Subject: [PATCH 016/154] fix(hw): correct start parameter for addadmin
---
lgsm/config-default/config-lgsm/hwserver/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/hwserver/_default.cfg b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
index ea18f00cf..a353064c8 100644
--- a/lgsm/config-default/config-lgsm/hwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
@@ -27,7 +27,7 @@ loadsave=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# http://hurtworld.wikia.com/wiki/Hosting_A_Server
-startparameters="-batchmode -nographics -logfile ${gamelog} -exec \"host ${port} ${defaultmap} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};${admins}\""
+startparameters="-batchmode -nographics -logfile ${gamelog} -exec \"host ${port} ${defaultmap} ${loadsave};queryport ${queryport};maxplayers ${maxplayers};servername ${servername};creativemode ${creativemode};addadmin ${admins}\""
#### LinuxGSM Settings ####
From c5ca762655b0821adf3a19cacebb6390fabd4ff4 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Sat, 2 Mar 2024 10:46:11 +0100
Subject: [PATCH 017/154] fix(pw): fix updated start parameters (#4516)
* fix(pw): fix updated start parameters
* fix(pw): remove unneeded RCON parameters
---
lgsm/config-default/config-lgsm/pwserver/_default.cfg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index eaf5d775c..03ad83d9e 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -16,8 +16,8 @@ port="8211"
steamport="27015"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-## Game Server Docs | https://tech.palworldgame.com/dedicated-server-guide#linux
-startparameters="EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}' -port='${port}' -queryport='${steamport}'"
+## Game Server Docs | https://tech.palworldgame.com/settings-and-operation/arguments
+startparameters="-publiclobby -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}' -port='${port}' -queryport='${steamport}'"
#### LinuxGSM Settings ####
From cf5c6f9242c8ad882a1f173c04cc094f6c088df9 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Sat, 2 Mar 2024 10:46:11 +0100
Subject: [PATCH 018/154] fix(pw): fix updated start parameters (#4516)
* fix(pw): fix updated start parameters
* fix(pw): remove unneeded RCON parameters
---
lgsm/config-default/config-lgsm/pwserver/_default.cfg | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index cd318aacc..a463c4b4d 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -16,8 +16,8 @@ port="8211"
steamport="27015"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-## Game Server Docs | https://tech.palworldgame.com/dedicated-server-guide#linux
-startparameters="EpicApp=PalServer -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}' -port='${port}' -queryport='${steamport}'"
+## Game Server Docs | https://tech.palworldgame.com/settings-and-operation/arguments
+startparameters="-publiclobby -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS -servername='${servername}' -port='${port}' -queryport='${steamport}'"
#### LinuxGSM Settings ####
From 77414e158225ec58e2fc34f5e8430f4e06e285ba Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 2 Mar 2024 09:51:01 +0000
Subject: [PATCH 019/154] Release v24.1.5
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 70a452127..8f1516563 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.1.4"
+modulesversion="v24.1.5"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index e3c663754..c68f19dc2 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.1.4"
+version="v24.1.5"
shortname="core"
gameservername="core"
commandname="CORE"
From d7bb6d0f8fb783e5805e5c0835441da6378f87d0 Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Mon, 4 Mar 2024 15:59:22 +0100
Subject: [PATCH 020/154] fix(info_game): add ip query timeout and backup api
(#4524)
---
lgsm/modules/info_game.sh | 57 ++++++++++++++++++++++++++++-----------
1 file changed, 42 insertions(+), 15 deletions(-)
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index e943a9d91..97f8da87e 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -2467,25 +2467,52 @@ fi
# Cache public IP address for 24 hours
if [ ! -f "${tmpdir}/publicip.json" ] || [ "$(find "${tmpdir}/publicip.json" -mmin +1440)" ]; then
apiurl="http://ip-api.com/json"
- publicipresponse=$(curl -s "${apiurl}")
+ fn_script_log_info "Querying ${apiurl} for public IP address"
+
+ ipresponse=$(curl -s --max-time 3 "${apiurl}") # Attempt to query ip-api.com with a 3 second timeout
exitcode=$?
- # if curl passes add publicip to publicip.json
- if [ "${exitcode}" == "0" ]; then
- fn_script_log_pass "Getting public IP address"
- echo "${publicipresponse}" > "${tmpdir}/publicip.json"
- publicip="$(jq -r '.query' "${tmpdir}/publicip.json")"
- country="$(jq -r '.country' "${tmpdir}/publicip.json")"
- countrycode="$(jq -r '.countryCode' "${tmpdir}/publicip.json")"
+
+ # Check if the first request was successfull
+ if [ "${exitcode}" -eq 0 ]; then
+ fn_script_log_pass "Queried ${apiurl} for public IP address"
+
+ # Parse and reformat the response
+ publicip="$(echo "${ipresponse}" | jq -r '.query')"
+ country="$(echo "${ipresponse}" | jq -r '.country')"
+ countrycode="$(echo "${ipresponse}" | jq -r '.countryCode')"
+ # Construct a universal JSON format
+ echo "{\"ip\":\"${publicip}\",\"country\":\"${country}\",\"countryCode\":\"${countrycode}\",\"apiurl\":\"${apiurl}\"}" > "${tmpdir}/publicip.json"
else
- fn_script_log_warn "Unable to get public IP address"
- publicip="NOT SET"
- country="NOT SET"
- countrycode="NOT SET"
+ # Fallback to myip.wtf if the initial request failed or timed out
+ apiurl="https://myip.wtf/json"
+ fn_script_log_pass "Querying ${apiurl} for public IP address"
+
+ ipresponse=$(curl -s --max-time 3 "${apiurl}") # Attempt to query myip.wtf with a 3 second timeout as a backup
+ exitcode=$?
+
+ # Check if the backup request was successfull
+ if [ "${exitcode}" -eq 0 ]; then
+ fn_script_log_pass "Queried ${apiurl} for public IP address"
+
+ # Parse and reformat the response from myip.wtf
+ publicip="$(echo "${ipresponse}" | jq -r '.YourFuckingIPAddress')"
+ country="$(echo "${ipresponse}" | jq -r '.YourFuckingCountry')"
+ countrycode="$(echo "${ipresponse}" | jq -r '.YourFuckingCountryCode')"
+ # Construct a universal JSON format
+ echo "{\"ip\":\"${publicip}\",\"country\":\"${country}\",\"countryCode\":\"${countrycode}\",\"apiurl\":\"${apiurl}\"}" > "${tmpdir}/publicip.json"
+ else
+ fn_script_log_error "Unable to get public IP address"
+ publicip="NOT SET"
+ country="NOT SET"
+ countrycode="NOT SET"
+ fi
fi
else
- publicip="$(jq -r '.query' "${tmpdir}/publicip.json")"
- country="$(jq -r '.country' "${tmpdir}/publicip.json")"
- countrycode="$(jq -r '.countryCode' "${tmpdir}/publicip.json")"
+ # Cached IP is still valid
+ fn_script_log_pass "Using cached IP as public IP address"
+ publicip="$(jq -r '.ip' "${tmpdir}/publicip.json")"
+ country="$(jq -r '.country' "${tmpdir}/publicip.json")"
+ countrycode="$(jq -r '.countryCode' "${tmpdir}/publicip.json")"
fi
# Alert IP address
From 181c84508df0d3d327d92aacd8e3cca3f1faee5f Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Fri, 8 Mar 2024 23:03:23 +0100
Subject: [PATCH 021/154] feat(alerts): add support for telegram thread/topic
ids (#4526)
---
lgsm/config-default/config-lgsm/acserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ahl2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ahlserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/arkserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/arma3server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/armarserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/atsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/avserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bb2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bbserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bdserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bf1942server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bfvserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bmdmserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/boserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/bsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/btlserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/btserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ccserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ckserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/cmwserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/cod2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/cod4server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/codserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/coduoserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/codwawserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/colserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/cs2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/csczserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/csgoserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/csserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/cssserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ctserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dabserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dayzserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dmcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dodrserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dodserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dodsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/doiserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dstserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/dysserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ecoserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/emserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/etlserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ets2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/fctrserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/fofserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/gmodserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/hcuserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/hldmserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/hldmsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/hwserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/insserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/inssserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/iosserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/jc2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/jc3server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/jk2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/kf2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/kfserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/l4d2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/l4dserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/mcbserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/mcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/mhserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/mohaaserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/momserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/mtaserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ndserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/necserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/nmrihserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ns2cserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ns2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/nsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ohdserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/onsetserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/opforserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pc2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pmcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/psserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pvrserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pwserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/pzserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/q2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/q3server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/q4server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/qlserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/qwserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ricochetserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/roserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/rtcwserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/rustserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/rwserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sampserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sbotsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sbserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/scpslserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sdtdserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sfcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sfserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/sof2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/solserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/squadserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/stnserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/stserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/svenserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/terrariaserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/tf2server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/tfcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/tfserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/tiserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ts3server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/tsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/tuserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/twserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/untserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ut2k4server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ut3server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/ut99server/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/utserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/vhserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/vintsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/vpmcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/vsserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/wetserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/wfserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/wmcserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/wurmserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/zmrserver/_default.cfg | 4 +++-
lgsm/config-default/config-lgsm/zpsserver/_default.cfg | 4 +++-
lgsm/modules/alert_telegram.sh | 4 ++++
136 files changed, 409 insertions(+), 135 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/acserver/_default.cfg b/lgsm/config-default/config-lgsm/acserver/_default.cfg
index b3ad14caf..154f38c7b 100644
--- a/lgsm/config-default/config-lgsm/acserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/acserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ahl2server/_default.cfg b/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
index 086047093..a98c90701 100644
--- a/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ahl2server/_default.cfg
@@ -82,11 +82,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ahlserver/_default.cfg b/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
index fb7725e1f..04cc2e6f9 100644
--- a/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ahlserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/arkserver/_default.cfg b/lgsm/config-default/config-lgsm/arkserver/_default.cfg
index 73b251731..8680c1bad 100644
--- a/lgsm/config-default/config-lgsm/arkserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/arkserver/_default.cfg
@@ -79,11 +79,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/arma3server/_default.cfg b/lgsm/config-default/config-lgsm/arma3server/_default.cfg
index f50bf8342..b0918ef3c 100644
--- a/lgsm/config-default/config-lgsm/arma3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/arma3server/_default.cfg
@@ -93,11 +93,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/armarserver/_default.cfg b/lgsm/config-default/config-lgsm/armarserver/_default.cfg
index 3637f469b..61103d332 100644
--- a/lgsm/config-default/config-lgsm/armarserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/armarserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/atsserver/_default.cfg b/lgsm/config-default/config-lgsm/atsserver/_default.cfg
index 9d8125a31..f6d165098 100644
--- a/lgsm/config-default/config-lgsm/atsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/atsserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/avserver/_default.cfg b/lgsm/config-default/config-lgsm/avserver/_default.cfg
index 5777198c8..7b225de1f 100644
--- a/lgsm/config-default/config-lgsm/avserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/avserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bb2server/_default.cfg b/lgsm/config-default/config-lgsm/bb2server/_default.cfg
index c52c8c540..b9250cc5f 100644
--- a/lgsm/config-default/config-lgsm/bb2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bb2server/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bbserver/_default.cfg b/lgsm/config-default/config-lgsm/bbserver/_default.cfg
index 2cfabab9c..99262d8e3 100644
--- a/lgsm/config-default/config-lgsm/bbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bbserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bdserver/_default.cfg b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
index 674fabb10..3c1769fb3 100644
--- a/lgsm/config-default/config-lgsm/bdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bdserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bf1942server/_default.cfg b/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
index 5bd576b22..30e2f957a 100644
--- a/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bf1942server/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
index 66c4ef8fc..53aa36054 100644
--- a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg b/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
index dfe04bcd8..e353d57b0 100644
--- a/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bmdmserver/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/boserver/_default.cfg b/lgsm/config-default/config-lgsm/boserver/_default.cfg
index d6e2b4f4f..ae7912ab6 100644
--- a/lgsm/config-default/config-lgsm/boserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/boserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/bsserver/_default.cfg b/lgsm/config-default/config-lgsm/bsserver/_default.cfg
index b5f6017c0..d81cde16d 100644
--- a/lgsm/config-default/config-lgsm/bsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bsserver/_default.cfg
@@ -87,11 +87,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/btlserver/_default.cfg b/lgsm/config-default/config-lgsm/btlserver/_default.cfg
index dcc49c61c..28e8b95e3 100644
--- a/lgsm/config-default/config-lgsm/btlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/btlserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/btserver/_default.cfg b/lgsm/config-default/config-lgsm/btserver/_default.cfg
index c02b8c6ca..71c02c3fc 100644
--- a/lgsm/config-default/config-lgsm/btserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/btserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ccserver/_default.cfg b/lgsm/config-default/config-lgsm/ccserver/_default.cfg
index a8cd9f6d2..66847b410 100644
--- a/lgsm/config-default/config-lgsm/ccserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ccserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ckserver/_default.cfg b/lgsm/config-default/config-lgsm/ckserver/_default.cfg
index c662f3b04..f54d7cc7f 100644
--- a/lgsm/config-default/config-lgsm/ckserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ckserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/cmwserver/_default.cfg b/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
index 29df71d95..776b06a1d 100644
--- a/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cmwserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/cod2server/_default.cfg b/lgsm/config-default/config-lgsm/cod2server/_default.cfg
index 98ea0afb7..9665a9ba8 100644
--- a/lgsm/config-default/config-lgsm/cod2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cod2server/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/cod4server/_default.cfg b/lgsm/config-default/config-lgsm/cod4server/_default.cfg
index cde7e0113..f9787c352 100644
--- a/lgsm/config-default/config-lgsm/cod4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cod4server/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/codserver/_default.cfg b/lgsm/config-default/config-lgsm/codserver/_default.cfg
index 1c0a0902c..8f1476ad3 100644
--- a/lgsm/config-default/config-lgsm/codserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/codserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/coduoserver/_default.cfg b/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
index b3f89889f..c405966d4 100644
--- a/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/coduoserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/codwawserver/_default.cfg b/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
index e906fcf07..ca0f002d3 100644
--- a/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/codwawserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/colserver/_default.cfg b/lgsm/config-default/config-lgsm/colserver/_default.cfg
index 1c3b261e2..cd94e9b37 100644
--- a/lgsm/config-default/config-lgsm/colserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/colserver/_default.cfg
@@ -71,11 +71,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/cs2server/_default.cfg b/lgsm/config-default/config-lgsm/cs2server/_default.cfg
index 84679da01..a2df48244 100644
--- a/lgsm/config-default/config-lgsm/cs2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cs2server/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/csczserver/_default.cfg b/lgsm/config-default/config-lgsm/csczserver/_default.cfg
index 11d0da197..29001a098 100644
--- a/lgsm/config-default/config-lgsm/csczserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csczserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/csgoserver/_default.cfg b/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
index 5efdd4942..29b3aea10 100644
--- a/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csgoserver/_default.cfg
@@ -114,11 +114,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/csserver/_default.cfg b/lgsm/config-default/config-lgsm/csserver/_default.cfg
index 2e53616bd..266448e74 100644
--- a/lgsm/config-default/config-lgsm/csserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/csserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/cssserver/_default.cfg b/lgsm/config-default/config-lgsm/cssserver/_default.cfg
index 1af41c5fe..103c30897 100644
--- a/lgsm/config-default/config-lgsm/cssserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cssserver/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ctserver/_default.cfg b/lgsm/config-default/config-lgsm/ctserver/_default.cfg
index ea1ae5229..ac87d7516 100644
--- a/lgsm/config-default/config-lgsm/ctserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ctserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dabserver/_default.cfg b/lgsm/config-default/config-lgsm/dabserver/_default.cfg
index 62e3acf99..3d5015808 100644
--- a/lgsm/config-default/config-lgsm/dabserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dabserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dayzserver/_default.cfg b/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
index 82901c2cd..f09d23c23 100644
--- a/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dayzserver/_default.cfg
@@ -93,11 +93,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dmcserver/_default.cfg b/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
index 5f56a842c..3d74fca4d 100644
--- a/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dmcserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dodrserver/_default.cfg b/lgsm/config-default/config-lgsm/dodrserver/_default.cfg
index 555a1a007..0565b94e9 100644
--- a/lgsm/config-default/config-lgsm/dodrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodrserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dodserver/_default.cfg b/lgsm/config-default/config-lgsm/dodserver/_default.cfg
index 61700d621..e2419289a 100644
--- a/lgsm/config-default/config-lgsm/dodserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dodsserver/_default.cfg b/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
index 390f87b70..b6973f0a7 100644
--- a/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dodsserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/doiserver/_default.cfg b/lgsm/config-default/config-lgsm/doiserver/_default.cfg
index 6aa10ee9b..9a06b7b02 100644
--- a/lgsm/config-default/config-lgsm/doiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/doiserver/_default.cfg
@@ -79,11 +79,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dstserver/_default.cfg b/lgsm/config-default/config-lgsm/dstserver/_default.cfg
index d757ea732..2c8de8bd4 100644
--- a/lgsm/config-default/config-lgsm/dstserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dstserver/_default.cfg
@@ -80,11 +80,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/dysserver/_default.cfg b/lgsm/config-default/config-lgsm/dysserver/_default.cfg
index eb1861c7d..fcb37c41a 100644
--- a/lgsm/config-default/config-lgsm/dysserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/dysserver/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
index 794a6ed69..c08f37072 100644
--- a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/emserver/_default.cfg b/lgsm/config-default/config-lgsm/emserver/_default.cfg
index 1610d0816..1762e5175 100644
--- a/lgsm/config-default/config-lgsm/emserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/emserver/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/etlserver/_default.cfg b/lgsm/config-default/config-lgsm/etlserver/_default.cfg
index 18d6d302f..11a408fb8 100644
--- a/lgsm/config-default/config-lgsm/etlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/etlserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/ets2server/_default.cfg b/lgsm/config-default/config-lgsm/ets2server/_default.cfg
index 24462bc45..6abe98fb3 100644
--- a/lgsm/config-default/config-lgsm/ets2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ets2server/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/fctrserver/_default.cfg b/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
index d77284d5e..284fafaec 100644
--- a/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/fctrserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/fofserver/_default.cfg b/lgsm/config-default/config-lgsm/fofserver/_default.cfg
index 1f7ef0168..7ce630310 100644
--- a/lgsm/config-default/config-lgsm/fofserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/fofserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/gmodserver/_default.cfg b/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
index 01ea819f2..2cc683d20 100644
--- a/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/gmodserver/_default.cfg
@@ -88,11 +88,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/hcuserver/_default.cfg b/lgsm/config-default/config-lgsm/hcuserver/_default.cfg
index 67deef669..0925fe384 100644
--- a/lgsm/config-default/config-lgsm/hcuserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hcuserver/_default.cfg
@@ -85,11 +85,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
index cdbbfb168..c429a6c8e 100644
--- a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/hldmserver/_default.cfg b/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
index f69d56c34..3bddb128e 100644
--- a/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hldmserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg b/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
index 0baf4f955..74321c1f4 100644
--- a/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hldmsserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/hwserver/_default.cfg b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
index a353064c8..7fe1a4969 100644
--- a/lgsm/config-default/config-lgsm/hwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hwserver/_default.cfg
@@ -88,11 +88,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/insserver/_default.cfg b/lgsm/config-default/config-lgsm/insserver/_default.cfg
index b41fb2491..cd1d13029 100644
--- a/lgsm/config-default/config-lgsm/insserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/insserver/_default.cfg
@@ -84,11 +84,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/inssserver/_default.cfg b/lgsm/config-default/config-lgsm/inssserver/_default.cfg
index d4d485d68..4049e5e11 100644
--- a/lgsm/config-default/config-lgsm/inssserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/inssserver/_default.cfg
@@ -87,11 +87,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/iosserver/_default.cfg b/lgsm/config-default/config-lgsm/iosserver/_default.cfg
index bcc35e483..ff6764d0b 100644
--- a/lgsm/config-default/config-lgsm/iosserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/iosserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index da9b4f40a..5a82bbad9 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/jc3server/_default.cfg b/lgsm/config-default/config-lgsm/jc3server/_default.cfg
index 9c902f476..62d9cd4ab 100644
--- a/lgsm/config-default/config-lgsm/jc3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc3server/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/jk2server/_default.cfg b/lgsm/config-default/config-lgsm/jk2server/_default.cfg
index d14b052c2..f238c45fe 100644
--- a/lgsm/config-default/config-lgsm/jk2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jk2server/_default.cfg
@@ -79,11 +79,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/kf2server/_default.cfg b/lgsm/config-default/config-lgsm/kf2server/_default.cfg
index 9ca4a096c..8f44458cd 100644
--- a/lgsm/config-default/config-lgsm/kf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kf2server/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/kfserver/_default.cfg b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
index 969c5c65c..d9df57d3e 100644
--- a/lgsm/config-default/config-lgsm/kfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
@@ -82,11 +82,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/l4d2server/_default.cfg b/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
index 676a72360..a37ef4eb4 100644
--- a/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/l4d2server/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/l4dserver/_default.cfg b/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
index cf1f641ec..dc22bc871 100644
--- a/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/l4dserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
index db2bbf86d..d7171a3f6 100644
--- a/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcbserver/_default.cfg
@@ -73,11 +73,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/mcserver/_default.cfg b/lgsm/config-default/config-lgsm/mcserver/_default.cfg
index b6f923ade..1288fab95 100644
--- a/lgsm/config-default/config-lgsm/mcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mcserver/_default.cfg
@@ -79,11 +79,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/mhserver/_default.cfg b/lgsm/config-default/config-lgsm/mhserver/_default.cfg
index 399d7c96b..197440ab2 100644
--- a/lgsm/config-default/config-lgsm/mhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mhserver/_default.cfg
@@ -79,11 +79,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg b/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
index a53e55bfc..dfd87335c 100644
--- a/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mohaaserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/momserver/_default.cfg b/lgsm/config-default/config-lgsm/momserver/_default.cfg
index e9b743c00..5834670c9 100644
--- a/lgsm/config-default/config-lgsm/momserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/momserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/mtaserver/_default.cfg b/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
index ff40ffa67..d1880ef89 100644
--- a/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/mtaserver/_default.cfg
@@ -73,11 +73,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/ndserver/_default.cfg b/lgsm/config-default/config-lgsm/ndserver/_default.cfg
index fcf1caffb..249556af4 100644
--- a/lgsm/config-default/config-lgsm/ndserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ndserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/necserver/_default.cfg b/lgsm/config-default/config-lgsm/necserver/_default.cfg
index 993572b34..8062f8d5f 100644
--- a/lgsm/config-default/config-lgsm/necserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/necserver/_default.cfg
@@ -73,11 +73,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg b/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
index f3b740a3b..8757caa6c 100644
--- a/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/nmrihserver/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg b/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
index 5fa692c08..2f8f47af5 100644
--- a/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2cserver/_default.cfg
@@ -85,11 +85,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ns2server/_default.cfg b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
index 41970a2f4..9cec798da 100644
--- a/lgsm/config-default/config-lgsm/ns2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ns2server/_default.cfg
@@ -86,11 +86,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/nsserver/_default.cfg b/lgsm/config-default/config-lgsm/nsserver/_default.cfg
index c207a0a10..367878519 100644
--- a/lgsm/config-default/config-lgsm/nsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/nsserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ohdserver/_default.cfg b/lgsm/config-default/config-lgsm/ohdserver/_default.cfg
index 9eaf0d4a5..26bc3a30c 100644
--- a/lgsm/config-default/config-lgsm/ohdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ohdserver/_default.cfg
@@ -80,11 +80,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/onsetserver/_default.cfg b/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
index 39fc4005c..0103ef069 100644
--- a/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/onsetserver/_default.cfg
@@ -71,11 +71,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/opforserver/_default.cfg b/lgsm/config-default/config-lgsm/opforserver/_default.cfg
index 8ba202b14..93d00fc5c 100644
--- a/lgsm/config-default/config-lgsm/opforserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/opforserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pc2server/_default.cfg b/lgsm/config-default/config-lgsm/pc2server/_default.cfg
index b55447802..d4e6ce1d6 100644
--- a/lgsm/config-default/config-lgsm/pc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pc2server/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pcserver/_default.cfg b/lgsm/config-default/config-lgsm/pcserver/_default.cfg
index 2c1514488..c36dfaac6 100644
--- a/lgsm/config-default/config-lgsm/pcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pcserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pmcserver/_default.cfg b/lgsm/config-default/config-lgsm/pmcserver/_default.cfg
index 57838ad98..74e0e7e18 100644
--- a/lgsm/config-default/config-lgsm/pmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pmcserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/psserver/_default.cfg b/lgsm/config-default/config-lgsm/psserver/_default.cfg
index e41dee19c..80d991f94 100644
--- a/lgsm/config-default/config-lgsm/psserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/psserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg b/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
index 0565f806a..1e2ca3660 100644
--- a/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pvkiiserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pvrserver/_default.cfg b/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
index 2cffabe71..374da3dd1 100644
--- a/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pvrserver/_default.cfg
@@ -79,11 +79,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index 03ad83d9e..e069ec1b1 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/pzserver/_default.cfg b/lgsm/config-default/config-lgsm/pzserver/_default.cfg
index 5a34c04bc..f830d7cc4 100644
--- a/lgsm/config-default/config-lgsm/pzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pzserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/q2server/_default.cfg b/lgsm/config-default/config-lgsm/q2server/_default.cfg
index b92c36c38..79820d650 100644
--- a/lgsm/config-default/config-lgsm/q2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q2server/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/q3server/_default.cfg b/lgsm/config-default/config-lgsm/q3server/_default.cfg
index 0a54d2852..74b0d11f3 100644
--- a/lgsm/config-default/config-lgsm/q3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q3server/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/q4server/_default.cfg b/lgsm/config-default/config-lgsm/q4server/_default.cfg
index ffd311e3c..d07828e9f 100644
--- a/lgsm/config-default/config-lgsm/q4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/q4server/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/qlserver/_default.cfg b/lgsm/config-default/config-lgsm/qlserver/_default.cfg
index 5d5614a02..84631b765 100644
--- a/lgsm/config-default/config-lgsm/qlserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/qlserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/qwserver/_default.cfg b/lgsm/config-default/config-lgsm/qwserver/_default.cfg
index 63d554f27..620943c3e 100644
--- a/lgsm/config-default/config-lgsm/qwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/qwserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg b/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
index 36845b0a2..bb1957de0 100644
--- a/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ricochetserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/roserver/_default.cfg b/lgsm/config-default/config-lgsm/roserver/_default.cfg
index 1a95add2a..c000f6181 100644
--- a/lgsm/config-default/config-lgsm/roserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/roserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg b/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
index d62dcb048..9011bbced 100644
--- a/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rtcwserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/rustserver/_default.cfg b/lgsm/config-default/config-lgsm/rustserver/_default.cfg
index 071d9d008..cf609a84c 100644
--- a/lgsm/config-default/config-lgsm/rustserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rustserver/_default.cfg
@@ -90,11 +90,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/rwserver/_default.cfg b/lgsm/config-default/config-lgsm/rwserver/_default.cfg
index 9a798c66c..9523dd63b 100644
--- a/lgsm/config-default/config-lgsm/rwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/rwserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/sampserver/_default.cfg b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
index 0888064ba..870603bb0 100644
--- a/lgsm/config-default/config-lgsm/sampserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sampserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg b/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
index 3c6e3412e..82d651ec3 100644
--- a/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sbotsserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/sbserver/_default.cfg b/lgsm/config-default/config-lgsm/sbserver/_default.cfg
index 6032abe06..3d06b4235 100644
--- a/lgsm/config-default/config-lgsm/sbserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sbserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/scpslserver/_default.cfg b/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
index f00574bd8..237bbebe3 100644
--- a/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/scpslserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg b/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
index bb26d6ca6..e54814df2 100644
--- a/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/scpslsmserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
index 24cd2c0ac..0a091dae4 100644
--- a/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
@@ -73,11 +73,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/sfcserver/_default.cfg b/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
index 40c5a0c18..831f92353 100644
--- a/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sfcserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/sfserver/_default.cfg b/lgsm/config-default/config-lgsm/sfserver/_default.cfg
index f889b4866..65930bfc1 100644
--- a/lgsm/config-default/config-lgsm/sfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sfserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/sof2server/_default.cfg b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
index 59fb8373b..e00afefa1 100644
--- a/lgsm/config-default/config-lgsm/sof2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/solserver/_default.cfg b/lgsm/config-default/config-lgsm/solserver/_default.cfg
index 601018529..8581104dd 100644
--- a/lgsm/config-default/config-lgsm/solserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/solserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/squadserver/_default.cfg b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
index 55bc2bf44..99b91b538 100644
--- a/lgsm/config-default/config-lgsm/squadserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/squadserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/stnserver/_default.cfg b/lgsm/config-default/config-lgsm/stnserver/_default.cfg
index 7bf2d7234..70c7d290c 100644
--- a/lgsm/config-default/config-lgsm/stnserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/stnserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/stserver/_default.cfg b/lgsm/config-default/config-lgsm/stserver/_default.cfg
index e245c57c0..2f2fe0ed4 100644
--- a/lgsm/config-default/config-lgsm/stserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/stserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/svenserver/_default.cfg b/lgsm/config-default/config-lgsm/svenserver/_default.cfg
index 11822d1f1..4cd97c50e 100644
--- a/lgsm/config-default/config-lgsm/svenserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/svenserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg b/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
index 0fc6a06b2..fc0d291c9 100644
--- a/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/terrariaserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/tf2server/_default.cfg b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
index 7d3164e0e..600249013 100644
--- a/lgsm/config-default/config-lgsm/tf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/tfcserver/_default.cfg b/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
index 3334509a1..17787eef5 100644
--- a/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfcserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/tfserver/_default.cfg b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
index 86994d8e0..c6d9842b3 100644
--- a/lgsm/config-default/config-lgsm/tfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
@@ -94,11 +94,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/tiserver/_default.cfg b/lgsm/config-default/config-lgsm/tiserver/_default.cfg
index 96a3726fd..4090d85c9 100644
--- a/lgsm/config-default/config-lgsm/tiserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tiserver/_default.cfg
@@ -76,11 +76,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ts3server/_default.cfg b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
index 36c0d2bae..d132d5c57 100644
--- a/lgsm/config-default/config-lgsm/ts3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/tsserver/_default.cfg b/lgsm/config-default/config-lgsm/tsserver/_default.cfg
index 05189f90b..418727ae6 100644
--- a/lgsm/config-default/config-lgsm/tsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tsserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/tuserver/_default.cfg b/lgsm/config-default/config-lgsm/tuserver/_default.cfg
index 89c6712bd..ba22c5aa6 100644
--- a/lgsm/config-default/config-lgsm/tuserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tuserver/_default.cfg
@@ -80,11 +80,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/twserver/_default.cfg b/lgsm/config-default/config-lgsm/twserver/_default.cfg
index 6f9c2adb6..4d47cb2d1 100644
--- a/lgsm/config-default/config-lgsm/twserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/twserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/untserver/_default.cfg b/lgsm/config-default/config-lgsm/untserver/_default.cfg
index e76aefba4..a556c1758 100644
--- a/lgsm/config-default/config-lgsm/untserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/untserver/_default.cfg
@@ -84,11 +84,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg b/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
index 709b9855a..ef8fab731 100644
--- a/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut2k4server/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/ut3server/_default.cfg b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
index 4f0b6a3a0..1088d1f0c 100644
--- a/lgsm/config-default/config-lgsm/ut3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
@@ -90,11 +90,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/ut99server/_default.cfg b/lgsm/config-default/config-lgsm/ut99server/_default.cfg
index f4a3d8ecf..3343afc81 100644
--- a/lgsm/config-default/config-lgsm/ut99server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut99server/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/utserver/_default.cfg b/lgsm/config-default/config-lgsm/utserver/_default.cfg
index 0ffdd821f..299d2571a 100644
--- a/lgsm/config-default/config-lgsm/utserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/utserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/vhserver/_default.cfg b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
index 4e3d23923..355c70824 100644
--- a/lgsm/config-default/config-lgsm/vhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
@@ -114,11 +114,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/vintsserver/_default.cfg b/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
index 1b64ae29d..a3bc472c4 100644
--- a/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vintsserver/_default.cfg
@@ -74,11 +74,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg b/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
index 09d6bf93f..28bc1b2ea 100644
--- a/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/vsserver/_default.cfg b/lgsm/config-default/config-lgsm/vsserver/_default.cfg
index 0195393fd..c7976b384 100644
--- a/lgsm/config-default/config-lgsm/vsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vsserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/wetserver/_default.cfg b/lgsm/config-default/config-lgsm/wetserver/_default.cfg
index 4c3738909..b53a0674c 100644
--- a/lgsm/config-default/config-lgsm/wetserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wetserver/_default.cfg
@@ -70,11 +70,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Backup | https://docs.linuxgsm.com/commands/backup
diff --git a/lgsm/config-default/config-lgsm/wfserver/_default.cfg b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
index 80ff4ba96..fb7211c8c 100644
--- a/lgsm/config-default/config-lgsm/wfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
@@ -75,11 +75,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/wmcserver/_default.cfg b/lgsm/config-default/config-lgsm/wmcserver/_default.cfg
index f38976d6e..c9a0a5d52 100644
--- a/lgsm/config-default/config-lgsm/wmcserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wmcserver/_default.cfg
@@ -77,11 +77,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/wurmserver/_default.cfg b/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
index 901417aaf..0141e7d7e 100644
--- a/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wurmserver/_default.cfg
@@ -114,11 +114,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/zmrserver/_default.cfg b/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
index 1bcd5d4a7..391d83baf 100644
--- a/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/zmrserver/_default.cfg
@@ -78,11 +78,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/config-default/config-lgsm/zpsserver/_default.cfg b/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
index f4497786b..b5a7b3b93 100644
--- a/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/zpsserver/_default.cfg
@@ -83,11 +83,13 @@ slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
-# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
diff --git a/lgsm/modules/alert_telegram.sh b/lgsm/modules/alert_telegram.sh
index 3b3ec9912..6f6426cb1 100644
--- a/lgsm/modules/alert_telegram.sh
+++ b/lgsm/modules/alert_telegram.sh
@@ -11,7 +11,9 @@ jsoninfo=$(
cat << EOF
{
"chat_id": "${telegramchatid}",
+ "message_thread_id": "${telegramthreadid}",
"parse_mode": "HTML",
+ "disable_notification": "${telegramdisablenotification}",
"text": "${alerttitle}\n\nServer name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}\n\nServer Time\n$(date)",
"disable_web_page_preview": "yes"
}
@@ -22,7 +24,9 @@ jsonnoinfo=$(
cat << EOF
{
"chat_id": "${telegramchatid}",
+ "message_thread_id": "${telegramthreadid}",
"parse_mode": "HTML",
+ "disable_notification": "${telegramdisablenotification}",
"text": "${alerttitle}\n\nServer name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nServer Time\n$(date)",
"disable_web_page_preview": "yes"
}
From 9b62bdeb666766c4e0a6a061dd52cef9e0a2e1cd Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Sat, 9 Mar 2024 12:40:52 +0100
Subject: [PATCH 022/154] feat(dev): add new developer command for parsing
distro details (#4523)
* feat(dev): add new developer command for parsing distro details
* Updated details-check action to match new command name
---
.github/workflows/details-check.yml | 2 +-
lgsm/modules/command_dev_details.sh | 98 -----------
.../command_dev_parse_distro_details.sh | 114 +++++++++++++
.../modules/command_dev_parse_game_details.sh | 160 ++++++++++++++++++
lgsm/modules/core_getopt.sh | 5 +-
lgsm/modules/core_modules.sh | 7 +-
6 files changed, 284 insertions(+), 102 deletions(-)
delete mode 100644 lgsm/modules/command_dev_details.sh
create mode 100644 lgsm/modules/command_dev_parse_distro_details.sh
create mode 100644 lgsm/modules/command_dev_parse_game_details.sh
diff --git a/.github/workflows/details-check.yml b/.github/workflows/details-check.yml
index 2a04dc6ac..748a77991 100644
--- a/.github/workflows/details-check.yml
+++ b/.github/workflows/details-check.yml
@@ -83,7 +83,7 @@ jobs:
run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server details
- name: Detect details
- run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server detect-details
+ run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server parse-game-details
- name: Query Raw
run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server query-raw
diff --git a/lgsm/modules/command_dev_details.sh b/lgsm/modules/command_dev_details.sh
deleted file mode 100644
index 93dae77bc..000000000
--- a/lgsm/modules/command_dev_details.sh
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/bash
-# LinuxGSM command_dev_debug.sh module
-# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
-# Website: https://linuxgsm.com
-# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
-
-if [ -f "config" ]; then
- servercfgfullpath="config"
-fi
-if [ -f "clusterconfig" ]; then
- clustercfgfullpath="clusterconfig"
-fi
-
-info_game.sh
-
-carriagereturn=$(file -b "${servercfgfullpath}" | grep -q CRLF && echo "${red}CRLF${default}" || echo "${lightgreen}LF${default}")
-
-echo -e ""
-echo -e "${bold}${lightgreen}Server Details${default}"
-fn_messages_separator
-
-echo -e ""
-echo -e "Game: ${gamename}"
-echo -e "Config type: ${configtype}"
-echo -e "Config file: ${servercfgfullpath}"
-if [ -f "${clustercfgfullpath}" ]; then
- echo -e "Cluster config file: ${clustercfgfullpath}"
-fi
-echo -e "Carriage Return: ${carriagereturn}"
-
-# Create an associative array of the server details.
-declare -A server_details=(
- ['Admin Password']="${adminpassword}"
- ['API Port']="${apiport}"
- ['Cave']="${cave}"
- ['Cluster']="${cluster}"
- ['Config IP']="${configip}"
- ['Default Map']="${defaultmap}"
- ['Game Mode']="${gamemode}"
- ['Game Type']="${gametype}"
- ['HTTP Enabled']="${httpenabled}"
- ['HTTP IP']="${httpip}"
- ['HTTP Password']="${httppassword}"
- ['HTTP Port']="${httpport}"
- ['HTTP User']="${httpuser}"
- ['Internet IP']="${publicip}"
- ['LAN Port']="${lanport}"
- ['Master Port']="${masterport}"
- ['Master']="${master}"
- ['Maxplayers']="${maxplayers}"
- ['OldQueryPortNumber']="${oldqueryportnumber}"
- ['Port']="${port}"
- ['Query Port']="${queryport}"
- ['RCON Enabled']="${rconenabled}"
- ['RCON Password']="${rconpassword}"
- ['RCON Port']="${rconport}"
- ['Reserved Slots']="${reservedslots}"
- ['Server IP']="${ip}"
- ['Server Password']="${serverpassword}"
- ['Servername']="${servername}"
- ['Shard']="${shard}"
- ['Sharding']="${sharding}"
- ['Steam Auth Port']="${steamauthport}"
- ['Telnet Enabled']="${telnetenabled}"
- ['Telnet IP']="${telnetip}"
- ['Telnet Password']="${telnetpassword}"
- ['Telnet Port']="${telnetport}"
- ['Tickrate']="${tickrate}"
- ['World Name']="${worldname}"
- ['World Type']="${worldtype}"
-)
-
-# Initialize a variable to keep track of missing server details.
-missing_details=""
-
-# Loop through the server details and output them.
-echo -e ""
-echo -e "${bold}${lightgreen}Available Server Details${default}"
-fn_messages_separator
-for key in "${!server_details[@]}"; do
- value=${server_details[$key]}
- if [ -z "$value" ]; then
- missing_details+="\n${key}"
- else
- echo -e "$key: $value "
- fi
-done
-
-# Output the missing server details if there are any.
-if [ -n "$missing_details" ]; then
- echo -e ""
- echo -e "${lightgreen}Missing Server Details${default}"
- fn_messages_separator
- echo -e "${missing_details}"
-fi
-
-core_exit.sh
diff --git a/lgsm/modules/command_dev_parse_distro_details.sh b/lgsm/modules/command_dev_parse_distro_details.sh
new file mode 100644
index 000000000..ca2bfd9ed
--- /dev/null
+++ b/lgsm/modules/command_dev_parse_distro_details.sh
@@ -0,0 +1,114 @@
+#!/bin/bash
+# LinuxGSM command_dev_parse_distro_details.sh module
+# Author: Daniel Gibbs
+# Contributors: http://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Display parsed distro details.
+
+check_ip.sh
+check_status.sh
+info_distro.sh
+
+# Create an associative array of the server details.
+declare -A server_details=(
+ ['.NET Version']="${dotnetversion}"
+ ['Arch']="${arch}"
+ ['Backup Count']="${backupcount}"
+ ['Backup Last Date']="${lastbackupdate}"
+ ['Backup Last Days Ago']="${lastbackupdaysago}"
+ ['Backup Last Size']="${lastbackupsize}"
+ ['Backup Last']="${lastbackup}"
+ ['CPU Average Load']="${load}"
+ ['CPU Cores']="${cpucores}"
+ ['CPU Frequency']="${cpufreqency}"
+ ['CPU Model']="${cpumodel}"
+ ['Distro Codename']="${distrocodename}"
+ ['Distro ID Like']="${distroidlike}"
+ ['Distro ID']="${distroid}"
+ ['Distro Kernel']="${kernel}"
+ ['Distro Name']="${distroname}"
+ ['Distro Version CSV']="${distroversioncsv}"
+ ['Distro Version RH']="${distroversionrh}"
+ ['Distro Version']="${distroversion}"
+ ['Distro-Info Support']="${distrosupport}"
+ ['File System']="${filesystem}"
+ ['Game Server PID']="${gameserverpid}"
+ ['Gameserver CPU Used MHz']="${cpuusedmhz}"
+ ['Gameserver CPU Used']="${cpuused}"
+ ['Gameserver Mem Used MB']="${memusedmb}"
+ ['Gameserver Mem Used Pct']="${memusedpct}"
+ ['GLIBC Version']="${glibcversion}"
+ ['GLIBC']="${glibc}"
+ ['HLDS Linux PID']="${hldslinuxpid}"
+ ['Java Version']="${javaversion}"
+ ['Mono Version']="${monoversion}"
+ ['Network Interface']="${netint}"
+ ['Network Link Speed']="${netlink}"
+ ['Old Free']="${oldfree}"
+ ['Phys Mem Available']="${physmemavailable}"
+ ['Phys Mem Buffers KB']="${physmembufferskb}"
+ ['Phys Mem Cached']="${physmemcached}"
+ ['Phys Mem Free']="${physmemfree}"
+ ['Phys Mem Reclaimable KB']="${physmemreclaimablekb}"
+ ['Phys Mem Total GB']="${physmemtotalgb}"
+ ['Phys Mem Used']="${physmemused}"
+ ['Size Backup Dir']="${backupdirdu}"
+ ['Size Root Dir ']="${rootdirdu}"
+ ['Size Root Dir Excl. Backup']="${rootdirduexbackup}"
+ ['Size Serverfiles']="${serverfilesdu}"
+ ['SRCDS Linux PID']="${srcdslinuxpid}"
+ ['Storage Available']="${availspace}"
+ ['Storage Total']="${totalspace}"
+ ['Storage Used']="${usedspace}"
+ ['Swap Free']="${swapfree}"
+ ['Swap Total']="${swaptotal}"
+ ['Swap Used']="${swapused}"
+ ['Tmux Version']="${tmuxversion}"
+ ['Uptime Days']="${days}"
+ ['Uptime Hours']="${hours}"
+ ['Uptime Minutes']="${minutes}"
+ ['Uptime Total Seconds']="${uptime}"
+ ['Virtual Environment']="${virtualenvironment}"
+ # ['Distro Info Array']="${distro_info_array}"
+ # ['Distros Unsupported Array']="${distrosunsupported_array}"
+ # ['Distros Unsupported']="${distrosunsupported}"
+ # ['Human Readable']="${humanreadable}"
+ # ['Phys Mem Actual Free KB']="${physmemactualfreekb}"
+ # ['Phys Mem Cached KB']="${physmemcachedkb}"
+ # ['Phys Mem Free KB']="${physmemfreekb}"
+ # ['Phys Mem Total KB']="${physmemtotalkb}"
+ # ['Phys Mem Total MB']="${physmemtotalmb}"
+ # ['SS Info']="${ssinfo}"
+)
+
+# Initialize variables to keep track of available and missing distro details.
+available_details=""
+missing_details=""
+
+# Loop through the distro details and store them.
+for key in "${!server_details[@]}"; do
+ value=${server_details[$key]}
+ if [ -n "$value" ]; then
+ available_details+="${lightblue}${key}: ${default}${value}\n"
+ else
+ missing_details+="${key}\n"
+ fi
+done
+
+# Sort and output the available distro details.
+if [ -n "$available_details" ]; then
+ echo -e ""
+ echo -e "${bold}${lightgreen}Available Distro Details${default}"
+ fn_messages_separator
+ echo -e "${available_details}" | sort
+fi
+
+# Sort and output the missing distro details.
+if [ -n "$missing_details" ]; then
+ echo -e ""
+ echo -e "${lightgreen}Missing or unsupported Distro Details${default}"
+ fn_messages_separator
+ echo -e "${missing_details}" | sort
+fi
+
+core_exit.sh
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
new file mode 100644
index 000000000..f5d6d697d
--- /dev/null
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -0,0 +1,160 @@
+#!/bin/bash
+# LinuxGSM command_dev_parse_game_details.sh module
+# Author: Daniel Gibbs
+# Contributors: http://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Display parsed gameserver details.
+
+if [ -f "config" ]; then
+ servercfgfullpath="config"
+fi
+if [ -f "clusterconfig" ]; then
+ clustercfgfullpath="clusterconfig"
+fi
+
+info_game.sh
+
+carriagereturn=$(file -b "${servercfgfullpath}" | grep -q CRLF && echo "${red}CRLF${default}" || echo "${lightgreen}LF${default}")
+
+echo -e ""
+echo -e "${bold}${lightgreen}Server Details${default}"
+fn_messages_separator
+
+echo -e ""
+echo -e "${lightblue}Game: ${default}${gamename}"
+echo -e "${lightblue}Config type: ${default}${configtype}"
+echo -e "${lightblue}Config file: ${default}${servercfgfullpath}"
+if [ -f "${clustercfgfullpath}" ]; then
+ echo -e "${lightblue}Cluster config file: ${default}${clustercfgfullpath}"
+fi
+echo -e "${lightblue}Carriage Return: ${default}${carriagereturn}"
+
+# Create an associative array of the server details.
+declare -A server_details=(
+ ['Admin Password']="${adminpassword}"
+ ['Alert IP']="${alertip}"
+ ['API Port']="${apiport}"
+ ['App Port']="${appport}"
+ ['ASE']="${ase}"
+ ['Auth Token']="${authtoken}"
+ ['BattleEye Port']="${battleeyeport}"
+ ['Beacon Port']="${beaconport}"
+ ['Cave']="${cave}"
+ ['Client Port']="${clientport}"
+ ['Cluster']="${cluster}"
+ ['Config IP']="${configip}"
+ ['Creative Mode']="${creativemode}"
+ ['Custom Level URL']="${customlevelurl}"
+ ['DB Plugin']="${dbplugin}"
+ ['Default Map']="${defaultmap}"
+ ['Default Scenario']="${defaultscenario}"
+ ['Display Master Server']="${displaymasterserver}"
+ ['Epic Settings']="${epicsettings}"
+ ['File Port']="${fileport}"
+ ['Files Port']="${filesport}"
+ ['Game Mode']="${gamemode}"
+ ['Game Type']="${gametype}"
+ ['Home Kingdom']="${homekingdom}"
+ ['Home Server']="${homeserver}"
+ ['HTTP Enabled']="${httpenabled}"
+ ['HTTP IP']="${httpip}"
+ ['HTTP Password']="${httppassword}"
+ ['HTTP Port']="${httpport}"
+ ['HTTP User']="${httpuser}"
+ ['Internet IP']="${publicip}"
+ ['LAN Port']="${lanport}"
+ ['Login Server']="${loginserver}"
+ ['Master Port']="${masterport}"
+ ['Master Server']="${masterserver}"
+ ['Master']="${master}"
+ ['Max Players']="${maxplayers}"
+ ['Mod Server Port']="${modserverport}"
+ ['OldQueryPortNumber']="${oldqueryportnumber}"
+ ['Password']="${password}"
+ ['Port 401']="${port401}"
+ ['Port IPv6']="${portipv6}"
+ ['Port']="${port}"
+ ['Query Enabled']="${queryenabled}"
+ ['Query HTTP Port']="${queryhttpport}"
+ ['Query HTTPS Port']="${queryhttpsport}"
+ ['Query Mode']="${querymode}"
+ ['Query Port GS']="${queryportgs}"
+ ['Query Port']="${queryport}"
+ ['Query SSH Port']="${querysshport}"
+ ['Queue Enabled']="${queueenabled}"
+ ['Queue Port']="${queueport}"
+ ['Random Map']="${randommap}"
+ ['Raw Port']="${rawport}"
+ ['RC Password']="${rcpassword}"
+ ['RCON Enabled']="${rconenabled}"
+ ['RCON Password']="${rconpassword}"
+ ['RCON Port']="${rconport}"
+ ['RCON Web']="${rconweb}"
+ ['Reserved Slots']="${reservedslots}"
+ ['RMI Port']="${rmiport}"
+ ['RMI Reg Port']="${rmiregport}"
+ ['Salt']="${salt}"
+ ['Save Game Interval']="${savegameinterval}"
+ ['Save Interval']="${saveinterval}"
+ ['Secondary Port']="${port3}"
+ ['Seed']="${seed}"
+ ['Server Description']="${serverdescription}"
+ ['Server IP']="${ip}"
+ ['Server Level']="${serverlevel}"
+ ['Server Name']="${servername}"
+ ['Server Password Enabled']="${serverpasswordenabled}"
+ ['Server Password']="${serverpassword}"
+ ['Server Version']="${serverversion}"
+ ['Shard']="${shard}"
+ ['Sharding']="${sharding}"
+ ['Shutdown Port']="${shutdownport}"
+ ['Stats Port']="${statsport}"
+ ['Steam Auth Port']="${steamauthport}"
+ ['Steam Port']="${steamport}"
+ ['Steamworks Port']="${steamworksport}"
+ ['Telnet Enabled']="${telnetenabled}"
+ ['Telnet IP']="${telnetip}"
+ ['Telnet Password']="${telnetpass}"
+ ['Telnet Password']="${telnetpassword}"
+ ['Telnet Port']="${telnetport}"
+ ['Tickrate']="${tickrate}"
+ ['Unknown Port']="${unknownport}"
+ ['Version Count']="${versioncount}"
+ ['Voice Port']="${voiceport}"
+ ['Voice Unused Port']="${voiceunusedport}"
+ ['World Name']="${worldname}"
+ ['World Size']="${worldsize}"
+ ['World Type']="${worldtype}"
+)
+
+# Initialize variables to keep track of available and missing server details.
+available_details=""
+missing_details=""
+
+# Loop through the server details and store them.
+for key in "${!server_details[@]}"; do
+ value=${server_details[$key]}
+ if [ -n "$value" ]; then
+ available_details+="${lightblue}${key}: ${default}${value}\n"
+ else
+ missing_details+="${key}\n"
+ fi
+done
+
+# Sort and output the available distro details.
+if [ -n "$available_details" ]; then
+ echo -e ""
+ echo -e "${bold}${lightgreen}Available Distro Details${default}"
+ fn_messages_separator
+ echo -e "${available_details}" | sort
+fi
+
+# Output the missing server details if there are any.
+if [ -n "$missing_details" ]; then
+ echo -e ""
+ echo -e "${lightgreen}Missing or unsupported Server Details${default}"
+ fn_messages_separator
+ echo -e "${missing_details}" | sort
+fi
+
+core_exit.sh
diff --git a/lgsm/modules/core_getopt.sh b/lgsm/modules/core_getopt.sh
index 685e1ce8b..cd3e57cb5 100644
--- a/lgsm/modules/core_getopt.sh
+++ b/lgsm/modules/core_getopt.sh
@@ -50,7 +50,8 @@ cmd_install_squad_license=("li;license" "install_squad_license.sh" "Add your Squ
cmd_fastdl=("fd;fastdl" "command_fastdl.sh" "Build a FastDL directory.")
# Dev commands.
cmd_dev_debug=("dev;developer" "command_dev_debug.sh" "Enable developer Mode.")
-cmd_dev_details=("ddt;detect-details" "command_dev_details.sh" "Display parsed details.")
+cmd_dev_parse_game_details=("pgd;parse-game-details" "command_dev_parse_game_details.sh" "Display parsed gameserver details.")
+cmd_dev_parse_distro_details=("pdd;parse-distro-details" "command_dev_parse_distro_details.sh" "Display parsed distro details.")
cmd_dev_detect_deps=("dd;detect-deps" "command_dev_detect_deps.sh" "Detect required dependencies.")
cmd_dev_detect_glibc=("dg;detect-glibc" "command_dev_detect_glibc.sh" "Detect required glibc.")
cmd_dev_detect_ldd=("dl;detect-ldd" "command_dev_detect_ldd.sh" "Detect required dynamic dependencies.")
@@ -146,7 +147,7 @@ currentopt+=("${cmd_install[@]}" "${cmd_auto_install[@]}")
## Developer commands.
currentopt+=("${cmd_dev_debug[@]}")
if [ -f ".dev-debug" ]; then
- currentopt+=("${cmd_dev_details[@]}" "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_clear_modules[@]}")
+ currentopt+=("${cmd_dev_parse_game_details[@]}" "${cmd_dev_parse_distro_details[@]}" "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_clear_modules[@]}")
fi
## Sponsor.
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index e1621f014..7ea0402e3 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -299,7 +299,12 @@ command_dev_debug.sh() {
fn_fetch_module
}
-command_dev_details.sh() {
+command_dev_parse_game_details.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
+command_dev_parse_distro_details.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
From 7cc5b6b520d527a09d1eb08359e4545dcdc0ef3c Mon Sep 17 00:00:00 2001
From: Cristopfer Luis
Date: Thu, 14 Mar 2024 12:38:01 -0300
Subject: [PATCH 023/154] feat(new server): humanitz (#4518)
* feat: add config for humanitz
* fix: pending changes required
* fix: install config
* bug
---------
Co-authored-by: Daniel Gibbs
---
.../config-lgsm/hzserver/_default.cfg | 184 ++++++++++++++++++
lgsm/data/almalinux-8.csv | 1 +
lgsm/data/almalinux-9.csv | 1 +
lgsm/data/centos-7.csv | 1 +
lgsm/data/centos-8.csv | 1 +
lgsm/data/centos-9.csv | 1 +
lgsm/data/debian-10.csv | 1 +
lgsm/data/debian-11.csv | 1 +
lgsm/data/debian-12.csv | 1 +
lgsm/data/debian-9.csv | 1 +
lgsm/data/rhel-7.csv | 1 +
lgsm/data/rhel-8.csv | 1 +
lgsm/data/rhel-9.csv | 1 +
lgsm/data/rocky-8.csv | 1 +
lgsm/data/rocky-9.csv | 1 +
lgsm/data/serverlist.csv | 1 +
lgsm/data/ubuntu-16.04.csv | 1 +
lgsm/data/ubuntu-18.04.csv | 1 +
lgsm/data/ubuntu-20.04.csv | 1 +
lgsm/data/ubuntu-22.04.csv | 1 +
lgsm/data/ubuntu-23.04.csv | 1 +
lgsm/data/ubuntu-23.10.csv | 1 +
lgsm/modules/info_game.sh | 19 ++
lgsm/modules/info_messages.sh | 11 ++
lgsm/modules/install_config.sh | 3 +
25 files changed, 238 insertions(+)
create mode 100644 lgsm/config-default/config-lgsm/hzserver/_default.cfg
diff --git a/lgsm/config-default/config-lgsm/hzserver/_default.cfg b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
new file mode 100644
index 000000000..b610594e7
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
@@ -0,0 +1,184 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either:
+# common.cfg - applies settings to every instance.
+# [instance].cfg - applies settings to a specific instance.
+
+#### Game Server Settings ####
+
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+ip="0.0.0.0"
+port="7777"
+queryport="27015"
+servername="LinuxGSM"
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-log -port=${port} -queryport=${queryport} -steamservername=${servername}"
+
+#### LinuxGSM Settings ####
+
+## LinuxGSM Stats
+# Send useful stats to LinuxGSM developers.
+# https://docs.linuxgsm.com/configuration/linuxgsm-stats
+# (on|off)
+stats="off"
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Alert on Start/Stop/Restart
+statusalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
+gotifyalert="off"
+gotifytoken="token"
+gotifywebhook="webhook"
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
+telegramapi="api.telegram.org"
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="5"
+
+## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
+ansi="on"
+
+#### Advanced Settings ####
+
+## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
+sleeptime="0.5"
+
+## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
+# Server appid
+appid="2728330"
+steamcmdforcewindows="no"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch="linuxbranch"
+betapassword=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="true"
+
+## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: GoldSrc
+# 10: Avorion
+# 11: end
+stopmode="2"
+
+## Query mode
+# 1: session only
+# 2: gamedig (gsquery fallback)
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="2"
+querytype="protocol-valve"
+
+## Console type
+consoleverbose="no"
+consoleinteract="no"
+
+## Game Server Details
+# Do not edit
+gamename="HumanitZ"
+engine="unreal4"
+glibc="2.17"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}/TSSGame"
+executabledir="${systemdir}/Binaries/Linux"
+executable="./TSSGameServer-Linux-Shipping"
+servercfgdir="${systemdir}/Saved/Config/LinuxServer"
+servercfg="GameUserSettings.ini"
+servercfgdefault="GameUserSettings.ini"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
+gamelogdir="${systemdir}/Saved/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
+
+## Log Parameters
+logtimestamp="off"
+logtimestampformat="%Y-%m-%d %H:%M:%S"
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index c156eb053..e73fcfaa0 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index faacfa915..f5b5b5fc5 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index 84df6f5c6..a80043346 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index c156eb053..e73fcfaa0 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index faacfa915..f5b5b5fc5 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index 5f7f5f261..f5d63b026 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -53,6 +53,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 3ecedd538..97f5b978d 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 0ff8b391d..e54d9b12b 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index cb5eea4a1..87b6dad91 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 2b3be410d..3ecff6183 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -55,6 +55,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index c156eb053..e73fcfaa0 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index faacfa915..f5b5b5fc5 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index c156eb053..e73fcfaa0 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index faacfa915..f5b5b5fc5 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,zlib-devel
+hz
ins
inss
ios
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 841dcbf42..ae270f965 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -53,6 +53,7 @@ hl2dm,hl2dmserver,Half-Life 2: Deathmatch,ubuntu-22.04
hldm,hldmserver,Half-Life: Deathmatch,ubuntu-22.04
hldms,hldmsserver,Half-Life Deathmatch: Source,ubuntu-22.04
hw,hwserver,Hurtworld,ubuntu-22.04
+hz,hzserver,Humanitz,ubuntu-22.04
ins,insserver,Insurgency,ubuntu-22.04
inss,inssserver,Insurgency: Sandstorm,ubuntu-22.04
ios,iosserver,IOSoccer,ubuntu-22.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 9d88fde5c..41dbd0bc5 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -55,6 +55,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index a0b809b05..469c66705 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -55,6 +55,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 092792fa3..4a41435c2 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 21bab16cb..323b82a08 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index a29f403d7..e249a2968 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index a29f403d7..e249a2968 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -54,6 +54,7 @@ hl2dm
hldm
hldms
hw,lib32z1
+hz
ins
inss
ios
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 97f8da87e..0725845a0 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1328,6 +1328,23 @@ fn_info_game_hw() {
creativemode="${creativemode:-"NOT SET"}"
}
+# Config Type: ini
+# Parameters: true
+# Comment: ; or #
+# Example: ServerName=SERVERNAME
+# Filetype: ini
+fn_info_game_hz() {
+ if [ -f "${servercfgfullpath}" ]; then
+ fn_info_game_ini "adminpassword" "AdminPassword"
+ fn_info_game_ini "servername" "ServerName"
+ fi
+ adminpass="${adminpassword:-"NOT SET"}"
+ port="${port:-"0"}"
+ queryport="${queryport:-"0"}"
+ rconport="$((port + 2))"
+ servername="${servername:-"NOT SET"}"
+}
+
# Config Type: parameters
# Parameters: true
# Comment:
@@ -2335,6 +2352,8 @@ elif [ "${shortname}" == "fctr" ]; then
fn_info_game_fctr
elif [ "${shortname}" == "hw" ]; then
fn_info_game_hw
+elif [ "${shortname}" == "hz" ]; then
+ fn_info_game_hz
elif [ "${shortname}" == "inss" ]; then
fn_info_game_inss
elif [ "${shortname}" == "jc2" ]; then
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index c5d03919c..a1e8f52ac 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1064,6 +1064,15 @@ fn_info_messages_hw() {
} | column -s $'\t' -t
}
+fn_info_messages_hz() {
+ {
+ fn_port "header"
+ fn_port "Game" port udp
+ fn_port "Query" queryport udp
+ fn_port "RCON" rconport tcp
+ } | column -s $'\t' -t
+}
+
fn_info_messages_ins() {
{
fn_port "header"
@@ -1771,6 +1780,8 @@ fn_info_messages_select_engine() {
fn_info_messages_hcu
elif [ "${shortname}" == "hw" ]; then
fn_info_messages_hw
+ elif [ "${shortname}" == "hz" ]; then
+ fn_info_messages_hz
elif [ "${shortname}" == "ins" ]; then
fn_info_messages_ins
elif [ "${shortname}" == "inss" ]; then
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index a5a049913..9b3146770 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -495,6 +495,9 @@ elif [ "${shortname}" == "hl2dm" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "hz" ]; then
+ # Config is generated on first run
+ :
elif [ "${shortname}" == "ins" ]; then
array_configs+=(server.cfg)
fn_fetch_default_config
From 9d489d56dc9028b54d6d09fa1a2a2d274be76a10 Mon Sep 17 00:00:00 2001
From: Josh Gelman
Date: Sat, 23 Mar 2024 05:01:23 -0600
Subject: [PATCH 024/154] fear(wf): Update Warfork path (#4541)
As of the latest update on Steam, the installation directory for Linux has been moved out of `Warfork.app/Contents/Resources/`
Co-authored-by: Daniel Gibbs
---
lgsm/config-default/config-lgsm/wfserver/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/wfserver/_default.cfg b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
index fb7211c8c..d59790ca5 100644
--- a/lgsm/config-default/config-lgsm/wfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/wfserver/_default.cfg
@@ -156,7 +156,7 @@ glibc="2.15"
# Edit with care
## Game Server Directories
-systemdir="${serverfiles}/Warfork.app/Contents/Resources"
+systemdir="${serverfiles}"
executabledir="${systemdir}"
executable="./wf_server.x86_64"
servercfgdir="${systemdir}/basewf"
From 4fdf1f1af81e8549693759a6229279210c107204 Mon Sep 17 00:00:00 2001
From: Cristopfer Luis
Date: Sat, 23 Mar 2024 08:01:57 -0300
Subject: [PATCH 025/154] fix: add humanitz icon (#4536)
---
lgsm/data/gameicons/hz-icon.png | Bin 0 -> 2783 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 lgsm/data/gameicons/hz-icon.png
diff --git a/lgsm/data/gameicons/hz-icon.png b/lgsm/data/gameicons/hz-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..7d2428669491e34cccea37d2311a988dac7027aa
GIT binary patch
literal 2783
zcmV<53Ly1~P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!T^W|
zfa`m(r@`d!x@$wV%@UepmCrSPJHv6%?gnto2uUqO_Y4<(ii?3ZAH8aXSaV_7E^5Aw
zHs8cdM@O5bp=PQuEFH@K8*ae~{4b#-;=3gofyM82zMska4$p^S2k>+sam7L2?x0@v
zQ8xkv7B}H|Py+`Q&qAkTpkf=)Z2ijwrW^OTa0}Ca7ZP&c@>=PIBt$ifprsLvga`xJ
zVF)jZ5hU>!#0}4Z;n*;3tAu4u;wvGTPNW6j_YnjELM|*9=?^tj`8!mGu&zcs2zVZM
z?s|yBXwo2&hcW6wjKUY=Aqsk++cVK{RYYEuxl)0dXwXxQ;V@u@CZfNvd~;*8kGQs&5a>7{eR3}=Tq&h%3(WEG5>^ptL*&O9i+
z7bi%#0nhQ7FIiI7wipl71ToRp(T*E_dOcp=e*gzR{0Kk1WErgXDt15q1m4)YA0NK?
zE^b_V9nPLT7rz)h5gQwG@j$)+kLHW9EBQJe4HjW*w3zQt!cC*!#t-_&uqbVyC*r2K
zzQc;KxJi>X6_2GOArRw|0})F{uxZmK9R2hN4jud$E0!&XThlSI=S3X)%U^Ni;352M
z%?2zAa;$62#>Qe4+oCZ%TpPhoWe`udkKvEzLTn+4b&1>8JAnTH$BrDu6)RT4VadET@fvXSGvMFA^=sB6s#P(T
zJ2Zs%X=mcyk7UNgx7|!YpFpr6svs%2Axt253iI9oV3`jt--(}L}
z%|@AoLO|TKdGlr*KYkqYxB99dl{Ne7D--zqGrl9SpR8Gj&JG2B!3qcz40I}3qH5Ss
z4B^hJ}Pa6S^+sy!O!Q`VS>P*Cbj|3#+MVXQ;Et5~6>Kbmp^A3FS
z_d{X}NmVZe)_qQg(t}sdKM||vF2MJaCQhc?=TWG7Qm$FJ&>9}}CVNW8
zkdr`@6;Ki=vy#at2IMLPEY|H^_uhkphd#l_^uo$3uP76A-zx{o=cC6z!?h$3R4Q0F
zvx@Vz0ITXl7$2C2OOqaavua_C;TUC~$YP2d)v=n}B?$>ZNO{f~mM)5&B0CqO1(Q&E
zf=`L{{1CU_eJ|d4_dWdWlYii{6_=xfO7_IF&*FnWe~80}50@e6>eO%{GyIxl5NmqI
zu%Z~icdQ5tY9{&_#+)h{WNbnyjTh`WT?}y}rM!no*-LV^X+<7v>OjJhFboSm6JzPp
zbMe@&=kU~?3G93QJ>2p8`?31k>+tZSJMsQIAK={suj0n>AEQtdtn8bE%bP>EFzvyq
zPKc43hK5=}9x$)!taTF53%Z{>w+jj#%TENZ@Tsg0L*SC7kZ^4WXB+jwUGJ9vR4p5Ol#_U@g)#0xLuqlve0^VMrHPj#`ZcNiBWT{zVWO1Jm0G*hdF
zfKAAuVJ+v}z^jon#JRL+dVsQCco`)*B>|tiW?4w{sTbXdqXOHv{|S3udKf4~FV9>LZJAIDkeT!d=H!mYpjH6FZo6V4b}fZ?i(#f;-%
zMZ*vWjbVz}5HougE2)>V+u#^hu*YPqu!K1#peL4+>4Ne1ui}BVqCK19E`Xb=G1(Qap)XoyPeH`GDHy@;?Oe4
z3?E=y?h7~}^V;CGU>8iK1&i9|X&DNa9=Ca~1oZ@+dbMmuGV9eUDo3y!D_5+-m8-_F
zZru$y`IOV3s}`DkpVlnQ<_JFDPBF}pdluEMiz3xzukYf7)Jw_k)B%-(p;8NEF#R6^
zk`WSgugOD)$=T3#eS{>C@m;s!m&W@IkA`go4rf2^KBbn3y4ATxX`BtGMIfaoB8EdG
zUuF=|1RLv*c#@;R@WONHTUdNmReRmR*MmcaWCt8pk5`im|
zdy0s7Bjo##?*v~VU{Oj9ogfL7$7tET5U5TO(0S0XLy0AOJ4tvfPr-EK28{@G8WaL8
l5<
Date: Sat, 23 Mar 2024 11:02:24 +0000
Subject: [PATCH 026/154] build(deps): bump actions/add-to-project from 0.5.0
to 0.6.1 (#4538)
Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.5.0 to 0.6.1.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](https://github.com/actions/add-to-project/compare/v0.5.0...v0.6.1)
---
updated-dependencies:
- dependency-name: actions/add-to-project
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot]
Co-authored-by: Daniel Gibbs
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/add-to-project.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml
index 0ddccb572..ac2514b1d 100644
--- a/.github/workflows/add-to-project.yml
+++ b/.github/workflows/add-to-project.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Add to Project
- uses: actions/add-to-project@v0.5.0
+ uses: actions/add-to-project@v0.6.1
with:
project-url: https://github.com/orgs/GameServerManagers/projects/11
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
From 57ebe2063572c1c160acef3ff86c3c921f45799e Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Sat, 23 Mar 2024 12:02:58 +0100
Subject: [PATCH 027/154] fix(parse-details): change heading of output & add
hint for creating new variables (#4531)
* Added hint for new variables
* Fixed heading of output
---
lgsm/modules/command_dev_parse_game_details.sh | 4 ++--
lgsm/modules/info_distro.sh | 1 +
lgsm/modules/info_game.sh | 1 +
3 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
index f5d6d697d..4dcf33c2a 100644
--- a/lgsm/modules/command_dev_parse_game_details.sh
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -144,7 +144,7 @@ done
# Sort and output the available distro details.
if [ -n "$available_details" ]; then
echo -e ""
- echo -e "${bold}${lightgreen}Available Distro Details${default}"
+ echo -e "${bold}${lightgreen}Available Gameserver Details${default}"
fn_messages_separator
echo -e "${available_details}" | sort
fi
@@ -152,7 +152,7 @@ fi
# Output the missing server details if there are any.
if [ -n "$missing_details" ]; then
echo -e ""
- echo -e "${lightgreen}Missing or unsupported Server Details${default}"
+ echo -e "${lightgreen}Missing or unsupported Gameserver Details${default}"
fn_messages_separator
echo -e "${missing_details}" | sort
fi
diff --git a/lgsm/modules/info_distro.sh b/lgsm/modules/info_distro.sh
index 4465d6cdb..adcdb759b 100644
--- a/lgsm/modules/info_distro.sh
+++ b/lgsm/modules/info_distro.sh
@@ -5,6 +5,7 @@
# Website: https://linuxgsm.com
# Description: Variables providing useful info on the Operating System such as disk and performace info.
# Used for command_details.sh, command_debug.sh and alert.sh.
+# !Note: When adding variables to this script, ensure that they are also added to the command_dev_parse_distro_details.sh script.
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 0725845a0..497a65f22 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -4,6 +4,7 @@
# Contributors: http://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Gathers various game server information.
+# !Note: When adding variables to this script, ensure that they are also added to the command_dev_parse_game_details.sh script.
# shellcheck disable=SC2317
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
From 06d9eda27fba2c63d1139aa04c5afa634ed0892e Mon Sep 17 00:00:00 2001
From: Silje Ljosland Bakke
Date: Thu, 4 Apr 2024 11:37:28 +0200
Subject: [PATCH 028/154] fix(vh): update bepinexvh url to new url #4547
(#4548)
---
lgsm/modules/mods_list.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index c9a316055..c13565004 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -105,7 +105,7 @@ oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos
# Valheim Plus
valheimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/Grantapher/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url')
# Valheim BepInEx
-bepinexvhlatestlink=$(curl --connect-timeout 10 -sL "https://valheim.thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url')
+bepinexvhlatestlink=$(curl --connect-timeout 10 -sL "https://thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url')
# Define mods information (required)
From a2df0c49e98e690bb0cbd60517cf714ccfa7e674 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Thu, 4 Apr 2024 10:39:31 +0100
Subject: [PATCH 029/154] build(deps): bump actions/add-to-project from 0.5.0
to 1.0.0 (#4546)
Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 0.5.0 to 1.0.0.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](https://github.com/actions/add-to-project/compare/v0.5.0...v1.0.0)
---
updated-dependencies:
- dependency-name: actions/add-to-project
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot]
Co-authored-by: Daniel Gibbs
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/add-to-project.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml
index ac2514b1d..e6f6ee9be 100644
--- a/.github/workflows/add-to-project.yml
+++ b/.github/workflows/add-to-project.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Add to Project
- uses: actions/add-to-project@v0.6.1
+ uses: actions/add-to-project@v1.0.0
with:
project-url: https://github.com/orgs/GameServerManagers/projects/11
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
From 95c34edaf2c28624eaf681cf31d275a4e71db379 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 4 Apr 2024 10:46:59 +0100
Subject: [PATCH 030/154] fix(pw): change query mode to check only
---
lgsm/config-default/config-lgsm/pwserver/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index e069ec1b1..62429fec8 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -141,7 +141,7 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="3"
+querymode="1"
querytype="palworld"
## Console type
From 1387ee0dfdf837a677eedba898831fc576e15f28 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 4 Apr 2024 10:53:56 +0100
Subject: [PATCH 031/154] fix(vh): update binary name (#4551)
---
lgsm/config-default/config-lgsm/pwserver/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/pwserver/_default.cfg b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
index 62429fec8..5e848264e 100644
--- a/lgsm/config-default/config-lgsm/pwserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/pwserver/_default.cfg
@@ -160,7 +160,7 @@ glibc="2.17"
## Game Server Directories
systemdir="${serverfiles}/Pal"
executabledir="${systemdir}/Binaries/Linux/"
-executable="./PalServer-Linux-Test"
+executable="./PalServer-Linux-Shipping"
servercfgdir="${serverfiles}/Pal/Saved/Config/LinuxServer"
servercfg="PalWorldSettings.ini"
servercfgdefault="PalWorldSettings.ini"
From f439fa213e391d687a62384ae8c7e3995463e070 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 4 Apr 2024 11:02:01 +0100
Subject: [PATCH 032/154] Release v24.2.0
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 7ea0402e3..6fda8c2ca 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.1.5"
+modulesversion="v24.2.0"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index c68f19dc2..23ca9f88f 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.1.5"
+version="v24.2.0"
shortname="core"
gameservername="core"
commandname="CORE"
From dc6cbcea5025ab8bd47a69fab1af76be7c26d68e Mon Sep 17 00:00:00 2001
From: MicLieg <38057464+MicLieg@users.noreply.github.com>
Date: Sun, 5 May 2024 22:55:52 +0200
Subject: [PATCH 033/154] fix(mcserver): change required jdk to 21 (#4562)
* fix(mcserver): change required jdk to 21
* update java on other distros
---------
Co-authored-by: Daniel Gibbs
---
lgsm/data/almalinux-8.csv | 8 ++++----
lgsm/data/almalinux-9.csv | 12 ++++++------
lgsm/data/centos-7.csv | 2 +-
lgsm/data/centos-8.csv | 2 +-
lgsm/data/centos-9.csv | 4 ++--
lgsm/data/rhel-8.csv | 12 ++++++------
lgsm/data/rhel-9.csv | 12 ++++++------
lgsm/data/rocky-8.csv | 12 ++++++------
lgsm/data/rocky-9.csv | 12 ++++++------
lgsm/data/ubuntu-20.04.csv | 10 +++++-----
lgsm/data/ubuntu-22.04.csv | 12 ++++++------
lgsm/data/ubuntu-23.04.csv | 2 +-
lgsm/data/ubuntu-23.10.csv | 2 +-
13 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index e73fcfaa0..4d6c05ca5 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
@@ -82,7 +82,7 @@ onset,mariadb-connector-c
opfor
pc
pc2
-pmc,java-17-openjdk
+pmc,java-21-openjdk
ps,GConf2
pvkii
pvr,libcxx
@@ -128,11 +128,11 @@ ut3
ut99
vh,glibc-devel
vints,aspnetcore-runtime-7.0
-vpmc,java-17-openjdk
+vpmc,java-21-openjdk
vs
wet
wf
-wmc,java-17-openjdk
+wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index f5b5b5fc5..2cdd36575 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
@@ -82,12 +82,12 @@ onset,mariadb-connector-c
opfor
pc
pc2
-pmc,java-17-openjdk
+pmc,java-21-openjdk
ps,GConf2
pvkii
pvr,libcxx
pw
-pz,java-11-openjdk rng-tools
+pz,java-21-openjdk rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,zlib-devel
-rw,java-11-openjdk
+rw,java-21-openjdk
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,glibc-devel
vints,aspnetcore-runtime-7.0
-vpmc,java-17-openjdk
+vpmc,java-21-openjdk
vs
wet
wf
-wmc,java-17-openjdk
+wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index a80043346..df7422526 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-11-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index e73fcfaa0..831bc38e9 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index f5b5b5fc5..4d49ee66e 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -87,7 +87,7 @@ ps,GConf2
pvkii
pvr,libcxx
pw
-pz,java-11-openjdk rng-tools
+pz,java-21-openjdk rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,zlib-devel
-rw,java-11-openjdk
+rw,java-21-openjdk
samp
sb
sbots
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index e73fcfaa0..a378694b2 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
@@ -82,12 +82,12 @@ onset,mariadb-connector-c
opfor
pc
pc2
-pmc,java-17-openjdk
+pmc,java-21-openjdk
ps,GConf2
pvkii
pvr,libcxx
pw
-pz,java-11-openjdk rng-tools
+pz,java-21-openjdk rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,zlib-devel
-rw,java-11-openjdk
+rw,java-21-openjdk
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,glibc-devel
vints,aspnetcore-runtime-7.0
-vpmc,java-17-openjdk
+vpmc,java-21-openjdk
vs
wet
wf
-wmc,java-17-openjdk
+wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index f5b5b5fc5..2cdd36575 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
@@ -82,12 +82,12 @@ onset,mariadb-connector-c
opfor
pc
pc2
-pmc,java-17-openjdk
+pmc,java-21-openjdk
ps,GConf2
pvkii
pvr,libcxx
pw
-pz,java-11-openjdk rng-tools
+pz,java-21-openjdk rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,zlib-devel
-rw,java-11-openjdk
+rw,java-21-openjdk
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,glibc-devel
vints,aspnetcore-runtime-7.0
-vpmc,java-17-openjdk
+vpmc,java-21-openjdk
vs
wet
wf
-wmc,java-17-openjdk
+wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index e73fcfaa0..a378694b2 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
@@ -82,12 +82,12 @@ onset,mariadb-connector-c
opfor
pc
pc2
-pmc,java-17-openjdk
+pmc,java-21-openjdk
ps,GConf2
pvkii
pvr,libcxx
pw
-pz,java-11-openjdk rng-tools
+pz,java-21-openjdk rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,zlib-devel
-rw,java-11-openjdk
+rw,java-21-openjdk
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,glibc-devel
vints,aspnetcore-runtime-7.0
-vpmc,java-17-openjdk
+vpmc,java-21-openjdk
vs
wet
wf
-wmc,java-17-openjdk
+wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index f5b5b5fc5..2cdd36575 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,java-17-openjdk
+mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
@@ -82,12 +82,12 @@ onset,mariadb-connector-c
opfor
pc
pc2
-pmc,java-17-openjdk
+pmc,java-21-openjdk
ps,GConf2
pvkii
pvr,libcxx
pw
-pz,java-11-openjdk rng-tools
+pz,java-21-openjdk rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,zlib-devel
-rw,java-11-openjdk
+rw,java-21-openjdk
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,glibc-devel
vints,aspnetcore-runtime-7.0
-vpmc,java-17-openjdk
+vpmc,java-21-openjdk
vs
wet
wf
-wmc,java-17-openjdk
+wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 4a41435c2..8d4cc6e52 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,openjdk-17-jre
+mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
@@ -82,12 +82,12 @@ onset,libmariadb-dev
opfor
pc
pc2
-pmc,openjdk-17-jre
+pmc,openjdk-21-jre
ps,libgconf-2-4
pvkii
pvr,libc++1
pw
-pz,openjdk-17-jre,rng-tools
+pz,openjdk-21-jre,rng-tools
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,lib32z1
-rw,openjdk-17-jre
+rw,openjdk-21-jre
samp
sb
sbots
@@ -132,7 +132,7 @@ vpmc,openjdk-11-jre
vs
wet
wf
-wmc,openjdk-17-jre
+wmc,openjdk-21-jre
wurm,xvfb
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 323b82a08..67d28b5e9 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,openjdk-17-jre
+mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
@@ -82,12 +82,12 @@ onset,libmariadb-dev
opfor
pc
pc2
-pmc,openjdk-17-jre
+pmc,openjdk-21-jre
ps,libgconf-2-4
pvkii
pvr,libc++1
pw
-pz,openjdk-17-jre,rng-tools5
+pz,openjdk-21-jre,rng-tools5
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,lib32z1
-rw,openjdk-17-jre
+rw,openjdk-21-jre
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,libc6-dev
vints,aspnetcore-runtime-7.0
-vpmc,openjdk-17-jre
+vpmc,openjdk-21-jre
vs
wet
wf
-wmc,openjdk-17-jre
+wmc,openjdk-21-jre
wurm,xvfb
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index e249a2968..8b2246402 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,openjdk-17-jre
+mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index e249a2968..8b2246402 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -65,7 +65,7 @@ kf
kf2
l4d
l4d2
-mc,openjdk-17-jre
+mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
From 1c596972ff77d5de40e0a60f6f8459547ebcbf6a Mon Sep 17 00:00:00 2001
From: BertBrenner <42405825+BertBrenner@users.noreply.github.com>
Date: Sun, 5 May 2024 22:56:07 +0200
Subject: [PATCH 034/154] Update update_mc.sh (#4563)
If the executable variable is modified, fn_update_dl does not update minecraft_server.jar and which is used in fn_update_localbuild.
In addition this creates a problem if a alternative executable is used to launch minecraft by overwriting it.
Co-authored-by: Daniel Gibbs
---
lgsm/modules/update_mc.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/update_mc.sh b/lgsm/modules/update_mc.sh
index 4a0bdde37..40038ddeb 100644
--- a/lgsm/modules/update_mc.sh
+++ b/lgsm/modules/update_mc.sh
@@ -10,7 +10,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_dl() {
# Download and extract files to serverfiles.
fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "chmodx" "norun" "noforce" "nohash"
- cp -f "${tmpdir}/${remotebuildfilename}" "${serverfiles}/${executable#./}"
+ cp -f "${tmpdir}/${remotebuildfilename}" "${serverfiles}/minecraft_server.jar"
fn_clear_tmp
}
From c89cc62bb65b4b041919df8fdfc571df6b5c330f Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 5 May 2024 21:56:23 +0100
Subject: [PATCH 035/154] build(deps): bump actions/add-to-project from 1.0.0
to 1.0.1 (#4558)
Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](https://github.com/actions/add-to-project/compare/v1.0.0...v1.0.1)
---
updated-dependencies:
- dependency-name: actions/add-to-project
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/add-to-project.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml
index e6f6ee9be..fb092b649 100644
--- a/.github/workflows/add-to-project.yml
+++ b/.github/workflows/add-to-project.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Add to Project
- uses: actions/add-to-project@v1.0.0
+ uses: actions/add-to-project@v1.0.1
with:
project-url: https://github.com/orgs/GameServerManagers/projects/11
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
From 3da072cae4a8e6a96b69c39ca6fbe6e992b48663 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 May 2024 21:57:16 +0100
Subject: [PATCH 036/154] Release v24.2.1
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 6fda8c2ca..f083a4893 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.2.0"
+modulesversion="v24.2.1"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 23ca9f88f..8db9a57c9 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.2.0"
+version="v24.2.1"
shortname="core"
gameservername="core"
commandname="CORE"
From 0b8a2237232d1948ebb49216bd17fadf687247e9 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 May 2024 23:32:04 +0100
Subject: [PATCH 037/154] feat(deps): add Ubuntu 24.04
---
lgsm/data/ubuntu-23.04.csv | 10 +--
lgsm/data/ubuntu-23.10.csv | 10 +--
lgsm/data/ubuntu-24.04.csv | 138 +++++++++++++++++++++++++++++++++++++
3 files changed, 148 insertions(+), 10 deletions(-)
create mode 100644 lgsm/data/ubuntu-24.04.csv
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 8b2246402..1b50ed7ef 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -82,12 +82,12 @@ onset,libmariadb-dev
opfor
pc
pc2
-pmc,openjdk-17-jre
+pmc,openjdk-21-jre
ps,libgconf-2-4
pvkii
pvr,libc++1
pw
-pz,openjdk-17-jre,rng-tools5
+pz,openjdk-21-jre,rng-tools5
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,lib32z1
-rw,openjdk-17-jre
+rw,openjdk-21-jre
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,libc6-dev
vints,aspnetcore-runtime-7.0
-vpmc,openjdk-17-jre
+vpmc,openjdk-21-jre
vs
wet
wf
-wmc,openjdk-17-jre
+wmc,openjdk-21-jre
wurm,xvfb
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 8b2246402..1b50ed7ef 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -82,12 +82,12 @@ onset,libmariadb-dev
opfor
pc
pc2
-pmc,openjdk-17-jre
+pmc,openjdk-21-jre
ps,libgconf-2-4
pvkii
pvr,libc++1
pw
-pz,openjdk-17-jre,rng-tools5
+pz,openjdk-21-jre,rng-tools5
q2
q3
q4
@@ -97,7 +97,7 @@ ricochet
ro
rtcw
rust,lib32z1
-rw,openjdk-17-jre
+rw,openjdk-21-jre
samp
sb
sbots
@@ -128,11 +128,11 @@ ut3
ut99
vh,libc6-dev
vints,aspnetcore-runtime-7.0
-vpmc,openjdk-17-jre
+vpmc,openjdk-21-jre
vs
wet
wf
-wmc,openjdk-17-jre
+wmc,openjdk-21-jre
wurm,xvfb
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
new file mode 100644
index 000000000..1b50ed7ef
--- /dev/null
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -0,0 +1,138 @@
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
+ac
+ahl
+ahl2
+ark
+arma3
+armar,libcurl4
+ats
+av
+bb
+bb2,libcurl4-gnutls-dev:i386
+bd
+bf1942,libncurses5:i386,libtinfo5:i386
+bfv,libncurses5:i386,libstdc++5:i386
+bmdm,libncurses5:i386
+bo
+bs
+bt,libicu-dev,dos2unix,libxml2-utils
+btl
+cc
+ck,xvfb,libxi6
+cmw
+cod,libstdc++5:i386
+cod2,libstdc++5:i386
+cod4
+coduo,libstdc++5:i386
+codwaw
+col
+cs
+cs2
+cscz
+csgo
+css,libtinfo5:i386
+ct
+dab
+dayz
+dmc
+dod
+dodr
+dods
+doi
+dst,libcurl4-gnutls-dev:i386
+dys
+eco,libgdiplus
+em
+etl
+ets2
+fctr
+fof
+gmod,libtinfo5:i386
+hcu
+hl2dm
+hldm
+hldms
+hw,lib32z1
+hz
+ins
+inss
+ios
+jc2
+jc3
+jk2
+kf
+kf2
+l4d
+l4d2
+mc,openjdk-21-jre
+mcb
+mh
+mohaa,libstdc++5:i386
+mom
+mta,libncursesw5,libxml2-utils
+nd
+nec
+nmrih,libtinfo5:i386
+ns
+ns2,speex,libtbb2
+ns2c,speex:i386,libtbb2
+ohd
+onset,libmariadb-dev
+opfor
+pc
+pc2
+pmc,openjdk-21-jre
+ps,libgconf-2-4
+pvkii
+pvr,libc++1
+pw
+pz,openjdk-21-jre,rng-tools5
+q2
+q3
+q4
+ql
+qw
+ricochet
+ro
+rtcw
+rust,lib32z1
+rw,openjdk-21-jre
+samp
+sb
+sbots
+scpsl,mono-complete
+scpslsm,mono-complete
+sdtd,telnet,expect,libxml2-utils
+sf
+sfc,libtinfo5:i386
+sof2
+sol
+squad
+st,libxml2-utils
+stn
+sven,libssl1.1:i386,zlib1g:i386
+terraria
+tf
+tf2,libcurl4-gnutls-dev:i386
+tfc
+ti
+ts
+ts3
+tu
+tw
+unt
+ut
+ut2k4
+ut3
+ut99
+vh,libc6-dev
+vints,aspnetcore-runtime-7.0
+vpmc,openjdk-21-jre
+vs
+wet
+wf
+wmc,openjdk-21-jre
+wurm,xvfb
+zmr,libtinfo5:i386
+zps,libtinfo5:i386
From a2bea8d7915de2a9fb88d35dce2a1d696471fb28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Maciej=20G=C5=82owacki?=
<2972266+glowacki-dev@users.noreply.github.com>
Date: Wed, 22 May 2024 23:16:33 +0200
Subject: [PATCH 038/154] feat(vhserver): enable crossplay support (#4544)
* Install valheim dependencies for crossplay on Ubuntu
* Setup minimal required dependencies for valheim crossplay
* will set crossplay to default on and add instance id
* add ubuntu 24.04
---------
Co-authored-by: Daniel Gibbs
---
lgsm/config-default/config-lgsm/vhserver/_default.cfg | 6 ++----
lgsm/data/almalinux-8.csv | 2 +-
lgsm/data/almalinux-9.csv | 2 +-
lgsm/data/centos-7.csv | 2 +-
lgsm/data/centos-8.csv | 2 +-
lgsm/data/centos-9.csv | 2 +-
lgsm/data/debian-10.csv | 2 +-
lgsm/data/debian-11.csv | 2 +-
lgsm/data/debian-12.csv | 2 +-
lgsm/data/debian-9.csv | 2 +-
lgsm/data/rhel-7.csv | 2 +-
lgsm/data/rhel-8.csv | 2 +-
lgsm/data/rhel-9.csv | 2 +-
lgsm/data/rocky-8.csv | 2 +-
lgsm/data/rocky-9.csv | 2 +-
lgsm/data/ubuntu-16.04.csv | 2 +-
lgsm/data/ubuntu-18.04.csv | 2 +-
lgsm/data/ubuntu-20.04.csv | 2 +-
lgsm/data/ubuntu-22.04.csv | 2 +-
lgsm/data/ubuntu-23.04.csv | 2 +-
lgsm/data/ubuntu-23.10.csv | 2 +-
lgsm/data/ubuntu-24.04.csv | 2 +-
22 files changed, 23 insertions(+), 25 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/vhserver/_default.cfg b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
index 355c70824..8950435e8 100644
--- a/lgsm/config-default/config-lgsm/vhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
@@ -21,9 +21,7 @@ saveinterval="1800"
backups="4"
backupshort="7200"
backuplong="43200"
-# If crossplay is empty, it's off. Fill with any text to make true
-# Crossplay is currently not working on Linux dedicated servers, so for now the default is false (empty)
-crossplay=""
+instanceid="1"
# INSTRUCTIONS FOR WORLD MODIFIERS (from Valheim Dedicated Server Manual.pdf located in serverfiles)
# World modifiers can only be set in the start parameters and can be a combination of the following
@@ -53,7 +51,7 @@ crossplay=""
worldmodifiers=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-name '${servername}' -password ${serverpassword} -port ${port} -world ${worldname} -public ${public} -savedir '${savedir}' -saveinterval ${saveinterval} -backups ${backups} -backupshort ${backupshort} -backuplong ${backuplong}${logFile:+ -logFile '${logFile}'}${crossplay:+ -crossplay}${worldmodifiers:+ ${worldmodifiers}}"
+startparameters="-name '${servername}' -password ${serverpassword} -port ${port} -world ${worldname} -public ${public} -savedir '${savedir}' -saveinterval ${saveinterval} -backups ${backups} -backupshort ${backupshort} -backuplong ${backuplong} -crossplay -instanceid ${instanceid} ${logFile:+ -logFile '${logFile}'} ${worldmodifiers:+ ${worldmodifiers}}"
#### LinuxGSM Settings ####
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index 4d6c05ca5..e1b0426b6 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk
vs
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 2cdd36575..22846b263 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk
vs
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index df7422526..f583249fa 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-11-openjdk
vs
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index 831bc38e9..82fab1912 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-17-openjdk
vs
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index 4d49ee66e..e9326e0d7 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-17-openjdk
vs
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index f5d63b026..f43907e44 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre
vs
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 97f5b978d..e064d5b6c 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre
vs
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index e54d9b12b..7964d24f9 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-17-jre
vs
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index 87b6dad91..573b75b8c 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-8-jre
vs
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 3ecff6183..9ff890dc6 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-11-openjdk
vs
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index a378694b2..a6e67c2b3 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk
vs
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 2cdd36575..22846b263 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk
vs
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index a378694b2..a6e67c2b3 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk
vs
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 2cdd36575..22846b263 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,glibc-devel
+vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk
vs
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 41dbd0bc5..1f81cc6bd 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-8-jre
vs
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index 469c66705..20e6bd819 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre
vs
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 8d4cc6e52..69469c810 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre
vs
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 67d28b5e9..ab0823f15 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre
vs
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 1b50ed7ef..63597d987 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre
vs
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 1b50ed7ef..63597d987 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre
vs
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index 1b50ed7ef..63597d987 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -126,7 +126,7 @@ ut
ut2k4
ut3
ut99
-vh,libc6-dev
+vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre
vs
From 685cca9c58cf207324d538728727c01fab33cb0c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 11 Jun 2024 16:18:53 +0100
Subject: [PATCH 039/154] feat: change curl default timeout to 3 seconds
(#4592)
adjusted to 3 seconds from 10 for a timeout
---
lgsm/modules/alert_discord.sh | 7 ++++-
lgsm/modules/alert_gotify.sh | 2 +-
lgsm/modules/alert_ifttt.sh | 2 +-
lgsm/modules/alert_pushbullet.sh | 2 +-
lgsm/modules/alert_pushover.sh | 4 +--
lgsm/modules/alert_rocketchat.sh | 2 +-
lgsm/modules/alert_slack.sh | 2 +-
lgsm/modules/alert_telegram.sh | 2 +-
lgsm/modules/command_update_linuxgsm.sh | 36 ++++++++++++-------------
lgsm/modules/core_dl.sh | 2 +-
lgsm/modules/core_github.sh | 2 +-
lgsm/modules/info_game.sh | 36 ++++++++++++-------------
lgsm/modules/mods_list.sh | 24 ++++++++---------
linuxgsm.sh | 2 +-
14 files changed, 65 insertions(+), 60 deletions(-)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 54cf8a348..2b2ecf21b 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -118,6 +118,11 @@ jsonnoinfo=$(
"value": "${HOSTNAME}",
"inline": true
},
+ {
+ "name": "Is my Game Server Online?",
+ "value": "https://ismygameserver.online/${querytype}/${alertip}:${queryport}",
+ "inline": true
+ },
{
"name": "Server Time",
"value": "$(date)",
@@ -142,7 +147,7 @@ else
json="${jsoninfo}"
fi
-discordsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${discordwebhook}")
+discordsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${discordwebhook}")
if [ -n "${discordsend}" ]; then
fn_print_fail_nl "Sending Discord alert: ${discordsend}"
diff --git a/lgsm/modules/alert_gotify.sh b/lgsm/modules/alert_gotify.sh
index 2ab6e9eb7..8f1d31e91 100644
--- a/lgsm/modules/alert_gotify.sh
+++ b/lgsm/modules/alert_gotify.sh
@@ -34,7 +34,7 @@ else
fi
fn_print_dots "Sending Gotify alert"
-gotifysend=$(curl --connect-timeout 10 -sSL "${gotifywebhook}/message"?token="${gotifytoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)")
+gotifysend=$(curl --connect-timeout 3 -sSL "${gotifywebhook}/message"?token="${gotifytoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)")
if [ -n "${gotifysend}" ]; then
fn_print_ok_nl "Sending Gotify alert"
diff --git a/lgsm/modules/alert_ifttt.sh b/lgsm/modules/alert_ifttt.sh
index 77932569b..cbd740ec5 100644
--- a/lgsm/modules/alert_ifttt.sh
+++ b/lgsm/modules/alert_ifttt.sh
@@ -34,7 +34,7 @@ else
fi
fn_print_dots "Sending IFTTT alert"
-iftttsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
+iftttsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
if [ -n "${iftttsend}" ]; then
fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"
diff --git a/lgsm/modules/alert_pushbullet.sh b/lgsm/modules/alert_pushbullet.sh
index dedd43268..5ed3853f6 100644
--- a/lgsm/modules/alert_pushbullet.sh
+++ b/lgsm/modules/alert_pushbullet.sh
@@ -36,7 +36,7 @@ else
fi
fn_print_dots "Sending Pushbullet alert"
-pushbulletsend=$(curl --connect-timeout 10 -sSL -H "Access-Token: ${pushbullettoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://api.pushbullet.com/v2/pushes" | grep "error_code")
+pushbulletsend=$(curl --connect-timeout 3 -sSL -H "Access-Token: ${pushbullettoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://api.pushbullet.com/v2/pushes" | grep "error_code")
if [ -n "${pushbulletsend}" ]; then
fn_print_fail_nl "Sending Pushbullet alert: ${pushbulletsend}"
diff --git a/lgsm/modules/alert_pushover.sh b/lgsm/modules/alert_pushover.sh
index c436a4a91..22180d503 100644
--- a/lgsm/modules/alert_pushover.sh
+++ b/lgsm/modules/alert_pushover.sh
@@ -23,9 +23,9 @@ else
fi
if [ -z "${alerturl}" ]; then
- pushoversend=$(curl --connect-timeout 10 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alerttitle}" -F message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
Server Time
$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
+ pushoversend=$(curl --connect-timeout 3 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alerttitle}" -F message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
Server Time
$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
else
- pushoversend=$(curl --connect-timeout 10 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alerttitle}" -F message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
More info
${alerturl}
Server Time
$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
+ pushoversend=$(curl --connect-timeout 3 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alerttitle}" -F message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
More info
${alerturl}
Server Time
$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
fi
if [ -n "${pushoversend}" ]; then
diff --git a/lgsm/modules/alert_rocketchat.sh b/lgsm/modules/alert_rocketchat.sh
index 329111494..910722804 100644
--- a/lgsm/modules/alert_rocketchat.sh
+++ b/lgsm/modules/alert_rocketchat.sh
@@ -123,7 +123,7 @@ else
fi
fn_print_dots "Sending Rocketchat alert"
-rocketchatsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${rocketchatwebhook}")
+rocketchatsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${rocketchatwebhook}")
if [ -n "${rocketchatsend}" ]; then
fn_print_ok_nl "Sending Rocketchat alert"
diff --git a/lgsm/modules/alert_slack.sh b/lgsm/modules/alert_slack.sh
index 728a564e0..b74f98dec 100644
--- a/lgsm/modules/alert_slack.sh
+++ b/lgsm/modules/alert_slack.sh
@@ -182,7 +182,7 @@ fi
fn_print_dots "Sending Slack alert"
-slacksend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${slackwebhook}")
+slacksend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${slackwebhook}")
if [ "${slacksend}" == "ok" ]; then
fn_print_ok_nl "Sending Slack alert"
diff --git a/lgsm/modules/alert_telegram.sh b/lgsm/modules/alert_telegram.sh
index 6f6426cb1..98e1a980b 100644
--- a/lgsm/modules/alert_telegram.sh
+++ b/lgsm/modules/alert_telegram.sh
@@ -40,7 +40,7 @@ else
fi
fn_print_dots "Sending Telegram alert"
-telegramsend=$(curl --connect-timeout 10 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" ${curlcustomstring} "https://${telegramapi}/bot${telegramtoken}/sendMessage" | grep "error_code")
+telegramsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" ${curlcustomstring} "https://${telegramapi}/bot${telegramtoken}/sendMessage" | grep "error_code")
if [ -n "${telegramsend}" ]; then
fn_print_fail_nl "Sending Telegram alert: ${telegramsend}"
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index d20204187..43827a672 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -20,9 +20,9 @@ fn_script_log_info "Updating LinuxGSM"
fn_print_dots "Selecting repo"
fn_script_log_info "Selecting repo"
# Select remotereponame
-curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
+curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
if [ $? != "0" ]; then
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
if [ $? != "0" ]; then
fn_print_fail_nl "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
fn_script_log_fail "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
@@ -39,9 +39,9 @@ fi
# Check linuxsm.sh
echo -en "checking ${remotereponame} linuxgsm.sh...\c"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -51,9 +51,9 @@ if [ $? != "0" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
+ tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
else
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
+ tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
fi
if [ "${tmp_script_diff}" != "" ]; then
@@ -119,9 +119,9 @@ fi
echo -en "checking ${remotereponame} config _default.cfg...\c"
fn_script_log_info "Checking ${remotereponame} config _default.cfg"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -131,9 +131,9 @@ if [ $? != "0" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
+ config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
else
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
+ config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
fi
if [ "${config_file_diff}" != "" ]; then
@@ -153,9 +153,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -165,9 +165,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
else
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
fi
if [ "${config_file_diff}" != "" ]; then
@@ -191,9 +191,9 @@ if [ -n "${modulesdir}" ]; then
echo -en "checking ${remotereponame} module ${modulefile}...\c"
github_file_url_dir="lgsm/modules"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 10 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
else
- curl --connect-timeout 10 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
+ curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
fi
if [ $? != 0 ]; then
fn_print_error_eol_nl
@@ -210,9 +210,9 @@ if [ -n "${modulesdir}" ]; then
else
# compare file
if [ "${remotereponame}" == "GitHub" ]; then
- module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl --connect-timeout 10 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}"))
+ module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}"))
else
- module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl --connect-timeout 10 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}"))
+ module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}"))
fi
# results
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index caca0fc58..89a63eb8b 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -390,7 +390,7 @@ fn_fetch_file() {
fi
# Trap will remove part downloaded files if canceled.
trap fn_fetch_trap INT
- curlcmd=(curl --connect-timeout 10 --fail -L -o "${local_filedir}/${local_filename}" --retry 2)
+ curlcmd=(curl --connect-timeout 3 --fail -L -o "${local_filedir}/${local_filename}" --retry 2)
# if is large file show progress, else be silent
local exitcode=""
diff --git a/lgsm/modules/core_github.sh b/lgsm/modules/core_github.sh
index 7290f9bdf..402ee078c 100644
--- a/lgsm/modules/core_github.sh
+++ b/lgsm/modules/core_github.sh
@@ -23,7 +23,7 @@ fn_github_get_latest_release_version() {
local githubreleaserepo="${2}"
local githublatestreleaseurl="${github_api}/repos/${githubreleaseuser}/${githubreleaserepo}/releases/latest"
- githubreleaseversion=$(curl -s --connect-timeout 10 "${githublatestreleaseurl}" | jq '.tag_name')
+ githubreleaseversion=$(curl -s --connect-timeout 3 "${githublatestreleaseurl}" | jq '.tag_name')
# error if no version is there
if [ -z "${githubreleaseversion}" ]; then
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 497a65f22..56ae055e4 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -2496,12 +2496,12 @@ if [ ! -f "${tmpdir}/publicip.json" ] || [ "$(find "${tmpdir}/publicip.json" -mm
if [ "${exitcode}" -eq 0 ]; then
fn_script_log_pass "Queried ${apiurl} for public IP address"
- # Parse and reformat the response
- publicip="$(echo "${ipresponse}" | jq -r '.query')"
- country="$(echo "${ipresponse}" | jq -r '.country')"
- countrycode="$(echo "${ipresponse}" | jq -r '.countryCode')"
- # Construct a universal JSON format
- echo "{\"ip\":\"${publicip}\",\"country\":\"${country}\",\"countryCode\":\"${countrycode}\",\"apiurl\":\"${apiurl}\"}" > "${tmpdir}/publicip.json"
+ # Parse and reformat the response
+ publicip="$(echo "${ipresponse}" | jq -r '.query')"
+ country="$(echo "${ipresponse}" | jq -r '.country')"
+ countrycode="$(echo "${ipresponse}" | jq -r '.countryCode')"
+ # Construct a universal JSON format
+ echo "{\"ip\":\"${publicip}\",\"country\":\"${country}\",\"countryCode\":\"${countrycode}\",\"apiurl\":\"${apiurl}\"}" > "${tmpdir}/publicip.json"
else
# Fallback to myip.wtf if the initial request failed or timed out
apiurl="https://myip.wtf/json"
@@ -2514,12 +2514,12 @@ if [ ! -f "${tmpdir}/publicip.json" ] || [ "$(find "${tmpdir}/publicip.json" -mm
if [ "${exitcode}" -eq 0 ]; then
fn_script_log_pass "Queried ${apiurl} for public IP address"
- # Parse and reformat the response from myip.wtf
- publicip="$(echo "${ipresponse}" | jq -r '.YourFuckingIPAddress')"
- country="$(echo "${ipresponse}" | jq -r '.YourFuckingCountry')"
- countrycode="$(echo "${ipresponse}" | jq -r '.YourFuckingCountryCode')"
- # Construct a universal JSON format
- echo "{\"ip\":\"${publicip}\",\"country\":\"${country}\",\"countryCode\":\"${countrycode}\",\"apiurl\":\"${apiurl}\"}" > "${tmpdir}/publicip.json"
+ # Parse and reformat the response from myip.wtf
+ publicip="$(echo "${ipresponse}" | jq -r '.YourFuckingIPAddress')"
+ country="$(echo "${ipresponse}" | jq -r '.YourFuckingCountry')"
+ countrycode="$(echo "${ipresponse}" | jq -r '.YourFuckingCountryCode')"
+ # Construct a universal JSON format
+ echo "{\"ip\":\"${publicip}\",\"country\":\"${country}\",\"countryCode\":\"${countrycode}\",\"apiurl\":\"${apiurl}\"}" > "${tmpdir}/publicip.json"
else
fn_script_log_error "Unable to get public IP address"
publicip="NOT SET"
@@ -2529,10 +2529,10 @@ if [ ! -f "${tmpdir}/publicip.json" ] || [ "$(find "${tmpdir}/publicip.json" -mm
fi
else
# Cached IP is still valid
- fn_script_log_pass "Using cached IP as public IP address"
- publicip="$(jq -r '.ip' "${tmpdir}/publicip.json")"
- country="$(jq -r '.country' "${tmpdir}/publicip.json")"
- countrycode="$(jq -r '.countryCode' "${tmpdir}/publicip.json")"
+ fn_script_log_pass "Using cached IP as public IP address"
+ publicip="$(jq -r '.ip' "${tmpdir}/publicip.json")"
+ country="$(jq -r '.country' "${tmpdir}/publicip.json")"
+ countrycode="$(jq -r '.countryCode' "${tmpdir}/publicip.json")"
fi
# Alert IP address
@@ -2559,11 +2559,11 @@ if [ -z "${displaymasterserver}" ]; then
if [ -n "${ip}" ] && [ -n "${port}" ]; then
if [ "${steammaster}" == "true" ] || [ "${commandname}" == "DEV-QUERY-RAW" ]; then
# Query external IP first as most liky to succeed.
- masterserver="$(curl --connect-timeout 10 -m 3 -s "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${publicip}&format=json" | jq --arg port "${port}" --arg queryport "${queryport}" --arg port3 "${port3}" 'if .response.servers != null then .response.servers[] | select((.gameport == ($port|tonumber) or .gameport == ($queryport|tonumber) or .gameport == ($port3|tonumber))) | .addr else empty end' | wc -l 2> /dev/null)"
+ masterserver="$(curl --connect-timeout 3 -m 3 -s "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${publicip}&format=json" | jq --arg port "${port}" --arg queryport "${queryport}" --arg port3 "${port3}" 'if .response.servers != null then .response.servers[] | select((.gameport == ($port|tonumber) or .gameport == ($queryport|tonumber) or .gameport == ($port3|tonumber))) | .addr else empty end' | wc -l 2> /dev/null)"
if [ "${masterserver}" == "0" ]; then
# Loop though server IP addresses if external IP fails.
for queryip in "${queryips[@]}"; do
- masterserver="$(curl --connect-timeout 10 -m 3 -s "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${queryip}&format=json" | jq --arg port "${port}" --arg queryport "${queryport}" --arg port3 "${port3}" 'if .response.servers != null then .response.servers[] | select((.gameport == ($port|tonumber) or .gameport == ($queryport|tonumber) or .gameport == ($port3|tonumber))) | .addr else empty end' | wc -l 2> /dev/null)"
+ masterserver="$(curl --connect-timeout 3 -m 3 -s "https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${queryip}&format=json" | jq --arg port "${port}" --arg queryport "${queryport}" --arg port3 "${port3}" 'if .response.servers != null then .response.servers[] | select((.gameport == ($port|tonumber) or .gameport == ($queryport|tonumber) or .gameport == ($port3|tonumber))) | .addr else empty end' | wc -l 2> /dev/null)"
done
fi
if [ "${masterserver}" == "0" ]; then
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index c13565004..ca320e468 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -68,7 +68,7 @@ sourcemoddownloadurl="https://www.sourcemod.net/latest.php?os=linux&version=${so
sourcemodurl="${sourcemoddownloadurl}"
# Steamworks
steamworksscrapeurl="https://users.alliedmods.net/~kyles/builds/SteamWorks"
-steamworkslatestfile=$(curl --connect-timeout 10 -sL ${steamworksscrapeurl} | grep -m 1 linux | cut -d '"' -f 4)
+steamworkslatestfile=$(curl --connect-timeout 3 -sL ${steamworksscrapeurl} | grep -m 1 linux | cut -d '"' -f 4)
steamworksdownloadurl="${steamworksscrapeurl}/${steamworkslatestfile}"
steamworksurl="${steamworksdownloadurl}"
# Stripper:Source
@@ -78,34 +78,34 @@ stripperdownloadurl="http://www.bailopan.net/stripper/snapshots/1.2/${stripperla
stripperurl="${stripperdownloadurl}"
# CS:GO Mods
-get5lastbuild=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/get5/releases/latest | jq '.assets[] |select(.browser_download_url | endswith(".tar.gz"))')
+get5lastbuild=$(curl --connect-timeout 3 -sL https://api.github.com/repos/splewis/get5/releases/latest | jq '.assets[] |select(.browser_download_url | endswith(".tar.gz"))')
get5latestfile=$(echo -e "${get5lastbuild}" | jq -r '.name')
get5latestfilelink=$(echo -e "${get5lastbuild}" | jq -r '.browser_download_url')
-csgopracticelatest=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/csgo-practice-mode/releases/latest | jq '.assets[]')
+csgopracticelatest=$(curl --connect-timeout 3 -sL https://api.github.com/repos/splewis/csgo-practice-mode/releases/latest | jq '.assets[]')
csgopracticelatestfile=$(echo -e "${csgopracticelatest}" | jq -r '.name')
csgopracticelatestlink=$(echo -e "${csgopracticelatest}" | jq -r '.browser_download_url')
-csgopuglatest=$(curl --connect-timeout 10 -sL https://api.github.com/repos/splewis/csgo-pug-setup/releases/latest | jq '.assets[]')
+csgopuglatest=$(curl --connect-timeout 3 -sL https://api.github.com/repos/splewis/csgo-pug-setup/releases/latest | jq '.assets[]')
csgopuglatestfile=$(echo -e "${csgopuglatest}" | jq -r '.name')
csgopuglatestlink=$(echo -e "${csgopuglatest}" | jq -r '.browser_download_url')
-gokzlatestversion=$(curl --connect-timeout 10 -s https://api.github.com/repos/KZGlobalTeam/gokz/releases/latest | grep "tag_name" | cut -d : -f 2,3 | sed -E 's/.*"([^"]+)".*/\1/')
+gokzlatestversion=$(curl --connect-timeout 3 -s https://api.github.com/repos/KZGlobalTeam/gokz/releases/latest | grep "tag_name" | cut -d : -f 2,3 | sed -E 's/.*"([^"]+)".*/\1/')
gokzlatestfile="GOKZ-v${gokzlatestversion}.zip"
gokzlatestlink="https://github.com/KZGlobalTeam/gokz/releases/download/${gokzlatestversion}/${gokzlatestfile}"
-movementapilatestversion=$(curl --connect-timeout 10 -s https://api.github.com/repos/danzayau/MovementAPI/releases/latest | grep "tag_name" | cut -d : -f 2,3 | sed -E 's/.*"([^"]+)".*/\1/')
+movementapilatestversion=$(curl --connect-timeout 3 -s https://api.github.com/repos/danzayau/MovementAPI/releases/latest | grep "tag_name" | cut -d : -f 2,3 | sed -E 's/.*"([^"]+)".*/\1/')
movementapilatestfile="MovementAPI-v${movementapilatestversion}.zip"
movementapilatestlink="https://github.com/danzayau/MovementAPI/releases/download/${movementapilatestversion}/${movementapilatestfile}"
# Rust
carbonrustapilatestfile="Carbon.Linux.Release.tar.gz"
-carbonrustlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/CarbonCommunity/Carbon.Core/releases/tags/production_build | jq -r '.assets[]|select(.name == "Carbon.Linux.Release.tar.gz") | .browser_download_url')
+carbonrustlatestlink=$(curl --connect-timeout 3 -sL https://api.github.com/repos/CarbonCommunity/Carbon.Core/releases/tags/production_build | jq -r '.assets[]|select(.name == "Carbon.Linux.Release.tar.gz") | .browser_download_url')
# Oxide
-oxiderustlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
-oxidehurtworldlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest | jq -r '.assets[].browser_download_url')
-oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
+oxiderustlatestlink=$(curl --connect-timeout 3 -sL https://api.github.com/repos/OxideMod/Oxide.Rust/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
+oxidehurtworldlatestlink=$(curl --connect-timeout 3 -sL https://api.github.com/repos/OxideMod/Oxide.Hurtworld/releases/latest | jq -r '.assets[].browser_download_url')
+oxidesdtdlatestlink=$(curl --connect-timeout 3 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
# Valheim Plus
-valheimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/Grantapher/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url')
+valheimpluslatestlink=$(curl --connect-timeout 3 -sL https://api.github.com/repos/Grantapher/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url')
# Valheim BepInEx
-bepinexvhlatestlink=$(curl --connect-timeout 10 -sL "https://thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url')
+bepinexvhlatestlink=$(curl --connect-timeout 3 -sL "https://thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url')
# Define mods information (required)
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 8db9a57c9..6639e341f 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -111,7 +111,7 @@ fn_bootstrap_fetch_file() {
# Larger files show a progress bar.
echo -en "fetching ${fileurl_name} ${local_filename}...\c"
- curlcmd=$(curl --connect-timeout 10 -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
+ curlcmd=$(curl --connect-timeout 3 -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
local exitcode=$?
From 88f8890229d7243c2bf391503d0f3a5aba4f99d6 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 13 Jun 2024 11:45:06 +0100
Subject: [PATCH 040/154] feat: deprecate Memories of Mars (#4593)
---
lgsm/data/almalinux-8.csv | 1 -
lgsm/data/almalinux-9.csv | 1 -
lgsm/data/centos-7.csv | 1 -
lgsm/data/centos-8.csv | 1 -
lgsm/data/centos-9.csv | 1 -
lgsm/data/debian-10.csv | 1 -
lgsm/data/debian-11.csv | 1 -
lgsm/data/debian-12.csv | 1 -
lgsm/data/debian-9.csv | 1 -
lgsm/data/rhel-7.csv | 1 -
lgsm/data/rhel-8.csv | 1 -
lgsm/data/rhel-9.csv | 1 -
lgsm/data/rocky-8.csv | 1 -
lgsm/data/rocky-9.csv | 1 -
lgsm/data/serverlist.csv | 1 -
lgsm/data/ubuntu-16.04.csv | 1 -
lgsm/data/ubuntu-18.04.csv | 1 -
lgsm/data/ubuntu-20.04.csv | 1 -
lgsm/data/ubuntu-22.04.csv | 1 -
lgsm/data/ubuntu-23.04.csv | 1 -
lgsm/data/ubuntu-23.10.csv | 1 -
lgsm/data/ubuntu-24.04.csv | 1 -
lgsm/modules/info_game.sh | 20 --------------------
lgsm/modules/info_messages.sh | 10 ----------
lgsm/modules/install_config.sh | 6 ------
25 files changed, 58 deletions(-)
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index e1b0426b6..ab8d75b6a 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 22846b263..e4fb83e3b 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index f583249fa..0e04e3c74 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-libs,libxml2
nd
nec
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index 82fab1912..c07bf66d0 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index e9326e0d7..c919a160b 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -69,7 +69,6 @@ mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index f43907e44..1892d9f9f 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -68,7 +68,6 @@ mc,openjdk-11-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index e064d5b6c..9a37307c0 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -69,7 +69,6 @@ mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 7964d24f9..8835871ee 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -69,7 +69,6 @@ mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index 573b75b8c..c202924de 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -69,7 +69,6 @@ mc,openjdk-8-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 9ff890dc6..0546d8eb1 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -70,7 +70,6 @@ mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-libs,libxml2
nd
nec
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index a6e67c2b3..bbfb982f0 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 22846b263..e4fb83e3b 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index a6e67c2b3..bbfb982f0 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 22846b263..e4fb83e3b 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
-mom
mta,ncurses-compat-libs,libxml2
nd
nec
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index ae270f965..23e126627 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -68,7 +68,6 @@ mc,mcserver,Minecraft,ubuntu-22.04
mcb,mcbserver,Minecraft Bedrock,ubuntu-22.04
mh,mhserver,MORDHAU,ubuntu-22.04
mohaa,mohaaserver,Medal of Honor: Allied Assault,ubuntu-22.04
-mom,momserver,Memories of Mars,ubuntu-22.04
mta,mtaserver,Multi Theft Auto,ubuntu-22.04
nd,ndserver,Nuclear Dawn,ubuntu-22.04
nec,necserver,Necesse,ubuntu-22.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 1f81cc6bd..cf6a20220 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -70,7 +70,6 @@ mc,openjdk-8-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta
nd
nec
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index 20e6bd819..6f7dcbe18 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -70,7 +70,6 @@ mc,openjdk-11-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 69469c810..98ba275f9 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index ab0823f15..9bc8f7ad1 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 63597d987..e6d0c2962 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 63597d987..e6d0c2962 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index 63597d987..e6d0c2962 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
-mom
mta,libncursesw5,libxml2-utils
nd
nec
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 56ae055e4..007187ab8 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1510,24 +1510,6 @@ fn_info_game_mohaa() {
serverpassword="${serverpassword:-"NOT SET"}"
}
-# Config Type: json
-# Parameters: true
-# Comment: // or /* */
-fn_info_game_mom() {
- if [ -f "${servercfgfullpath}" ]; then
- fn_info_game_json "defaultmap" ".MapName"
- fn_info_game_json "maxplayers" ".MaxPlayers"
- fn_info_game_json "servername" ".ServerName"
- fn_info_game_json "serverpassword" ".ServerPassword"
- fi
- beaconport="${beaconport:-"0"}"
- defaultmap="${defaultmap:-"NOT SET"}"
- maxplayers="${maxplayers:-"0"}"
- port="${port:-"0"}"
- servername="${servername:-"NOT SET"}"
- serverpassword="${serverpassword:-"NOT SET"}"
-}
-
# Config Type: xml
# Comment:
# Example: Default MTA Server
@@ -2375,8 +2357,6 @@ elif [ "${shortname}" == "mh" ]; then
fn_info_game_mh
elif [ "${shortname}" == "mohaa" ]; then
fn_info_game_mohaa
-elif [ "${shortname}" == "mom" ]; then
- fn_info_game_mom
elif [ "${shortname}" == "mta" ]; then
fn_info_game_mta
elif [ "${shortname}" == "nec" ]; then
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index a1e8f52ac..a5f25bc74 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1192,14 +1192,6 @@ fn_info_messages_mohaa() {
} | column -s $'\t' -t
}
-fn_info_messages_mom() {
- {
- fn_port "header"
- fn_port "Game" port udp
- fn_port "Beacon" beaconport udp
- } | column -s $'\t' -t
-}
-
fn_info_messages_mta() {
{
fn_port "header"
@@ -1804,8 +1796,6 @@ fn_info_messages_select_engine() {
fn_info_messages_mh
elif [ "${shortname}" == "mohaa" ]; then
fn_info_messages_mohaa
- elif [ "${shortname}" == "mom" ]; then
- fn_info_messages_mom
elif [ "${shortname}" == "mta" ]; then
fn_info_messages_mta
elif [ "${shortname}" == "nec" ]; then
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 9b3146770..eea590f9e 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -589,12 +589,6 @@ elif [ "${shortname}" == "mta" ]; then
fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
-elif [ "${shotname}" == "mom" ]; then
- array_configs+=(DedicatedServerConfig.cfg)
- fn_fetch_default_config
- fn_default_config_remote
- fn_set_config_vars
- fn_list_config_locations
elif [ "${shortname}" == "pvr" ]; then
fn_check_cfgdir
array_configs+=(Game.ini)
From 164f9507f84e9856408bef75411ef893f7d36cc0 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 13 Jun 2024 14:13:29 +0100
Subject: [PATCH 041/154] feat: add debian 13
---
lgsm/data/debian-13.csv | 137 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 137 insertions(+)
create mode 100644 lgsm/data/debian-13.csv
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
new file mode 100644
index 000000000..6d16deb9f
--- /dev/null
+++ b/lgsm/data/debian-13.csv
@@ -0,0 +1,137 @@
+all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,distro-info,file,gzip,hostname,jq,lib32gcc-s1,lib32stdc++6,netcat-openbsd,pigz,python3,tar,tmux,unzip,util-linux,uuid-runtime,wget,xz-utils
+steamcmd,lib32gcc-s1,lib32stdc++6,libsdl2-2.0-0:i386,steamcmd
+ac
+ahl
+ahl2
+ark
+arma3
+armar,libcurl4
+ats
+av
+bb
+bb2,libcurl4-gnutls-dev:i386
+bd
+bf1942,libncurses5:i386,libtinfo5:i386
+bfv,libncurses5:i386,libstdc++5:i386
+bmdm,libncurses5:i386
+bo
+bs
+bt,libicu-dev,dos2unix,libxml2-utils
+btl
+cc
+ck,xvfb,libxi6
+cmw
+cod,libstdc++5:i386
+cod2,libstdc++5:i386
+cod4
+coduo,libstdc++5:i386
+codwaw
+col
+cs
+cs2
+cscz
+csgo
+css,libtinfo5:i386
+ct
+dab
+dayz
+dmc
+dod
+dodr
+dods
+doi
+dst,libcurl4-gnutls-dev:i386
+dys
+eco,libgdiplus
+em
+etl
+ets2
+fctr
+fof
+gmod,libtinfo5:i386
+hcu
+hl2dm
+hldm
+hldms
+hw,lib32z1
+hz
+ins
+inss
+ios
+jc2
+jc3
+jk2
+kf
+kf2
+l4d
+l4d2
+mc,openjdk-22-jre
+mcb
+mh
+mohaa,libstdc++5:i386
+mta,libncursesw5,libxml2-utils
+nd
+nec
+nmrih,libtinfo5:i386
+ns
+ns2,speex,libtbb12
+ns2c,speex:i386,libtbb12
+ohd
+onset,libmariadb-dev
+opfor
+pc
+pc2
+pmc,openjdk-22-jre
+ps,libgconf-2-4
+pvkii
+pvr,libc++1
+pw
+pz,openjdk-22-jre,rng-tools5
+q2
+q3
+q4
+ql
+qw
+ricochet
+ro
+rtcw
+rust,lib32z1
+rw,openjdk-22-jre
+samp
+sb
+sbots
+scpsl,mono-complete
+scpslsm,mono-complete
+sdtd,telnet,expect,libxml2-utils
+sf
+sfc,libtinfo5:i386
+sof2
+sol
+squad
+st,libxml2-utils
+stn
+sven,libssl3:i386,zlib1g:i386
+terraria
+tf
+tf2,libcurl4-gnutls-dev:i386
+tfc
+ti
+ts
+ts3
+tu
+tw
+unt
+ut
+ut2k4
+ut3
+ut99
+vh,libc6-dev,libatomic1,libpulse-dev
+vints,aspnetcore-runtime-7.0
+vpmc,openjdk-21-jre
+vs
+wet
+wf
+wmc,openjdk21-jre
+wurm,xvfb
+zmr,libtinfo5:i386
+zps,libtinfo5:i386
From 0e7314d26ae9914a8af003cac3a0dbdc85af98fa Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 15 Jun 2024 22:34:12 +0100
Subject: [PATCH 042/154] fix missing serverpassword detail (#4596)
---
lgsm/modules/command_dev_parse_game_details.sh | 10 ++++------
lgsm/modules/info_game.sh | 6 +++---
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
index 4dcf33c2a..2bb01e436 100644
--- a/lgsm/modules/command_dev_parse_game_details.sh
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -70,7 +70,6 @@ declare -A server_details=(
['Max Players']="${maxplayers}"
['Mod Server Port']="${modserverport}"
['OldQueryPortNumber']="${oldqueryportnumber}"
- ['Password']="${password}"
['Port 401']="${port401}"
['Port IPv6']="${portipv6}"
['Port']="${port}"
@@ -85,7 +84,6 @@ declare -A server_details=(
['Queue Port']="${queueport}"
['Random Map']="${randommap}"
['Raw Port']="${rawport}"
- ['RC Password']="${rcpassword}"
['RCON Enabled']="${rconenabled}"
['RCON Password']="${rconpassword}"
['RCON Port']="${rconport}"
@@ -133,7 +131,7 @@ missing_details=""
# Loop through the server details and store them.
for key in "${!server_details[@]}"; do
- value=${server_details[$key]}
+ value=${server_details[$key]}
if [ -n "$value" ]; then
available_details+="${lightblue}${key}: ${default}${value}\n"
else
@@ -144,9 +142,9 @@ done
# Sort and output the available distro details.
if [ -n "$available_details" ]; then
echo -e ""
- echo -e "${bold}${lightgreen}Available Gameserver Details${default}"
- fn_messages_separator
- echo -e "${available_details}" | sort
+ echo -e "${bold}${lightgreen}Available Gameserver Details${default}"
+ fn_messages_separator
+ echo -e "${available_details}" | sort
fi
# Output the missing server details if there are any.
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 007187ab8..f4caa5a7f 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1160,7 +1160,7 @@ fn_info_game_col() {
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
queryport="${port:-"0"}"
- rcpassword="${rconpassword:-"NOT SET"}"
+ rconpassword="${rconpassword:-"NOT SET"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
steamport="${steamport:-"0"}"
@@ -1174,11 +1174,11 @@ fn_info_game_cs2() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_valve_keyvalues "servername" "hostname"
fn_info_game_valve_keyvalues "defaultmap" "map"
- fn_info_game_valve_keyvalues "password" "sv_password"
+ fn_info_game_valve_keyvalues "serverpassword" "sv_password"
fi
defaultmap="${defaultmap:-"NOT SET"}"
maxplayers="${maxplayers:-"0"}"
- password="${password:-"NOT SET"}"
+ serverpassword="${serverpassword:-"NOT SET"}"
port="${port:-"0"}"
queryport="${port:-"0"}"
servername="${servername:-"NOT SET"}"
From 493a3a82fa8e5a9cf7796c0fb3a839ca2da49ca3 Mon Sep 17 00:00:00 2001
From: Thomas S
Date: Sun, 16 Jun 2024 20:18:00 +0200
Subject: [PATCH 043/154] feat(newserver): soulmask (#4590)
* feat: reference new smserver
* feat: add default config
* feat: add stop command using telnet
* fix: remove duplicate unused telnetpassword var
* feat: add soulmask to config & info functions
* fix: remove ini config for now
* fix: startparameter initialization fix
* feat: remove pve fixed param in startparameters
* fix: update default gamelogdir
* fix: handle telnet response during stop process
* add sm fix
* add fix_sm.sh
* add ss command
* and
* add memory requirements
* adjust start parameters
* remove telnetpassword
* add backup interval
a
* comments
* rename variables to telnetpassword
* var name change
---------
Co-authored-by: Daniel Gibbs
---
.../config-lgsm/smserver/_default.cfg | 189 ++++++++++++++++++
.../config-lgsm/tfserver/_default.cfg | 2 +-
.../config-lgsm/vhserver/_default.cfg | 5 +-
lgsm/data/almalinux-8.csv | 1 +
lgsm/data/almalinux-9.csv | 1 +
lgsm/data/centos-7.csv | 1 +
lgsm/data/centos-8.csv | 1 +
lgsm/data/centos-9.csv | 1 +
lgsm/data/debian-10.csv | 1 +
lgsm/data/debian-11.csv | 1 +
lgsm/data/debian-12.csv | 1 +
lgsm/data/debian-9.csv | 1 +
lgsm/data/rhel-7.csv | 1 +
lgsm/data/rhel-8.csv | 1 +
lgsm/data/rhel-9.csv | 1 +
lgsm/data/rocky-8.csv | 1 +
lgsm/data/rocky-9.csv | 1 +
lgsm/data/serverlist.csv | 1 +
lgsm/data/ubuntu-16.04.csv | 1 +
lgsm/data/ubuntu-18.04.csv | 1 +
lgsm/data/ubuntu-20.04.csv | 1 +
lgsm/data/ubuntu-22.04.csv | 1 +
lgsm/data/ubuntu-23.04.csv | 1 +
lgsm/data/ubuntu-23.10.csv | 1 +
lgsm/data/ubuntu-24.04.csv | 1 +
lgsm/modules/check_system_requirements.sh | 4 +-
.../modules/command_dev_parse_game_details.sh | 1 -
lgsm/modules/command_dev_query_raw.sh | 2 +-
lgsm/modules/command_stop.sh | 107 +++++++++-
lgsm/modules/core_modules.sh | 5 +
lgsm/modules/fix.sh | 2 +-
lgsm/modules/fix_sm.sh | 10 +
lgsm/modules/info_game.sh | 17 +-
lgsm/modules/info_messages.sh | 32 ++-
lgsm/modules/install_config.sh | 3 +
35 files changed, 381 insertions(+), 20 deletions(-)
create mode 100644 lgsm/config-default/config-lgsm/smserver/_default.cfg
create mode 100644 lgsm/modules/fix_sm.sh
diff --git a/lgsm/config-default/config-lgsm/smserver/_default.cfg b/lgsm/config-default/config-lgsm/smserver/_default.cfg
new file mode 100644
index 000000000..306179b9c
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/smserver/_default.cfg
@@ -0,0 +1,189 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either:
+# common.cfg - applies settings to every instance.
+# [instance].cfg - applies settings to a specific instance.
+
+#### Game Server Settings ####
+
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+servername="LinuxGSM"
+serverpassword=""
+adminpassword=""
+port="8777"
+queryport="27015"
+telnetport="18888"
+maxplayers="50"
+backupinterval="15" # Backup interval in minutes.
+defaultmap="Level01_Main"
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="WS ${defaultmap} -MultiHome=${ip} -Port=${port} -EchoPort=${telnetport} -QueryPort=${queryport} -SteamServerName='${servername}' -PSW='${serverpassword}' -adminpsw='${adminpassword}' -MaxPlayers=${maxplayers} -initbackup -backupinterval=${backupinterval} -UTF8Output -forcepassthrough -log"
+
+#### LinuxGSM Settings ####
+
+## LinuxGSM Stats
+# Send useful stats to LinuxGSM developers.
+# https://docs.linuxgsm.com/configuration/linuxgsm-stats
+# (on|off)
+stats="off"
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Alert on Start/Stop/Restart
+statusalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
+gotifyalert="off"
+gotifytoken="token"
+gotifywebhook="webhook"
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
+telegramapi="api.telegram.org"
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
+curlcustomstring=""
+
+## Updating | https://docs.linuxgsm.com/commands/update
+updateonstart="off"
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="5"
+
+## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
+ansi="on"
+
+#### Advanced Settings ####
+
+## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
+sleeptime="0.5"
+
+## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
+# Server appid
+appid="3017300"
+steamcmdforcewindows="no"
+# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
+branch=""
+betapassword=""
+# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
+steammaster="true"
+
+## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: GoldSrc
+# 10: Avorion
+# 11: end
+# 12: shutdown
+# 13: soulmask
+stopmode="13"
+
+## Query mode
+# 1: session only
+# 2: gamedig (gsquery fallback)
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="2"
+querytype="protocol-valve"
+
+## Console type
+consoleverbose="yes"
+consoleinteract="no"
+
+## Game Server Details
+# Do not edit
+gamename="Soulmask"
+engine="unreal4"
+glibc="2.17"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}/WS"
+executabledir="${systemdir}/Binaries/Linux"
+executable="./WSServer-Linux-Shipping"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
+gamelogdir="${systemdir}/WS/Saved/Logs"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
+
+## Log Parameters
+logtimestamp="off"
+logtimestampformat="%Y-%m-%d %H:%M:%S"
diff --git a/lgsm/config-default/config-lgsm/tfserver/_default.cfg b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
index c6d9842b3..fbce96a44 100644
--- a/lgsm/config-default/config-lgsm/tfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
@@ -25,7 +25,7 @@ greenhand="true"
maxplayers="40"
maxqueuesize="50"
queuevalidtime="120"
-saveinterval="300"
+saveinterval="300" # Auto-save in seconds.
serveradmins="" # Use 17-digit Steam IDs separated by commas to grant admin privileges to players.
servername="LinuxGSM"
serverpassword=""
diff --git a/lgsm/config-default/config-lgsm/vhserver/_default.cfg b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
index 8950435e8..b027d0fca 100644
--- a/lgsm/config-default/config-lgsm/vhserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/vhserver/_default.cfg
@@ -10,14 +10,13 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
servername="LinuxGSM"
-# Minimum password length is 5.
-serverpassword=""
+serverpassword="" # Minimum password length is 5.
port="2456"
worldname="${selfname}"
public="1"
savedir="$HOME/.config/unity3d/IronGate/Valheim"
logFile=""
-saveinterval="1800"
+saveinterval="1800" # Auto-save in seconds.
backups="4"
backupshort="7200"
backuplong="43200"
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index ab8d75b6a..204242144 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index e4fb83e3b..02f21426c 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index 0e04e3c74..a536c9c0f 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index c07bf66d0..d4d008fd4 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index c919a160b..574401733 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index 1892d9f9f..6b1a843bb 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -104,6 +104,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 9a37307c0..60a46f55d 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 8835871ee..0fd50f2d7 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index c202924de..174bd8e16 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 0546d8eb1..8854649ad 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index bbfb982f0..7dd334f38 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index e4fb83e3b..02f21426c 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index bbfb982f0..7dd334f38 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index e4fb83e3b..02f21426c 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -105,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 23e126627..7d2173321 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -104,6 +104,7 @@ scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod,ubuntu-22.04
sdtd,sdtdserver,7 Days to Die,ubuntu-22.04
sf,sfserver,Satisfactory,ubuntu-22.04
sfc,sfcserver,SourceForts Classic,ubuntu-22.04
+sm,smserver,Soulmask,ubuntu-22.04
sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-22.04
sol,solserver,Soldat,ubuntu-22.04
squad,squadserver,Squad,ubuntu-22.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index cf6a20220..1f359ab9d 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index 6f7dcbe18..cccd53dc7 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 98ba275f9..4c0cae0a8 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 9bc8f7ad1..b0f896fae 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index e6d0c2962..7ad90039b 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index e6d0c2962..7ad90039b 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index e6d0c2962..7ad90039b 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
diff --git a/lgsm/modules/check_system_requirements.sh b/lgsm/modules/check_system_requirements.sh
index 0214cdc1a..d25954427 100644
--- a/lgsm/modules/check_system_requirements.sh
+++ b/lgsm/modules/check_system_requirements.sh
@@ -9,7 +9,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
info_distro.sh
-# RAM requirements in megabytes for each game or engine.
+# RAM requirements in gigabytes for each game or engine.
if [ "${shortname}" == "ark" ]; then
ramrequirementgb="7"
@@ -49,6 +49,8 @@ elif [ "${shortname}" == "sf" ]; then
ramrequirementgb="12"
elif [ "${shortname}" == "squad" ]; then
ramrequirementgb="2"
+elif [ "${shortname}" == "sm" ]; then
+ ramrequirementgb="10"
elif [ "${shortname}" == "st" ]; then
ramrequirementgb="1"
elif [ "${shortname}" == "stn" ]; then
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
index 2bb01e436..2e22aa7ae 100644
--- a/lgsm/modules/command_dev_parse_game_details.sh
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -112,7 +112,6 @@ declare -A server_details=(
['Steamworks Port']="${steamworksport}"
['Telnet Enabled']="${telnetenabled}"
['Telnet IP']="${telnetip}"
- ['Telnet Password']="${telnetpass}"
['Telnet Password']="${telnetpassword}"
['Telnet Port']="${telnetport}"
['Tickrate']="${tickrate}"
diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh
index ae49a1b85..39f4787d3 100644
--- a/lgsm/modules/command_dev_query_raw.sh
+++ b/lgsm/modules/command_dev_query_raw.sh
@@ -207,7 +207,7 @@ echo -e ""
echo -e "${lightgreen}Gamedig Raw Output${default}"
fn_messages_separator
echo -e ""
-if [ ! "$(command -v gamedig 2> /dev/null)" ] || [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
+if [ ! "$(command -v gamedig 2> /dev/null)" ] && [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
fn_print_failure_nl "gamedig not installed"
fi
if [ ! "$(command -v jq 2> /dev/null)" ]; then
diff --git a/lgsm/modules/command_stop.sh b/lgsm/modules/command_stop.sh
index 3d534317a..7783cc94f 100644
--- a/lgsm/modules/command_stop.sh
+++ b/lgsm/modules/command_stop.sh
@@ -96,8 +96,8 @@ fn_stop_graceful_goldsrc() {
# telnet command for sdtd graceful shutdown.
fn_stop_graceful_sdtd_telnet() {
- if [ -z "${telnetpass}" ] || [ "${telnetpass}" == "NOT SET" ]; then
- sdtd_telnet_shutdown=$(expect -c '
+ if [ -z "${telnetpassword}" ] || [ "${telnetpassword}" == "NOT SET" ]; then
+ sdtdtelnetshutdown=$(expect -c '
proc abort {} {
puts "Timeout or EOF\n"
exit 1
@@ -111,14 +111,14 @@ fn_stop_graceful_sdtd_telnet() {
puts "Completed.\n"
')
else
- sdtd_telnet_shutdown=$(expect -c '
+ sdtdtelnetshutdown=$(expect -c '
proc abort {} {
puts "Timeout or EOF\n"
exit 1
}
spawn telnet '"${telnetip}"' '"${telnetport}"'
expect {
- "password:" { send "'"${telnetpass}"'\r" }
+ "password:" { send "'"${telnetpassword}"'\r" }
default abort
}
expect {
@@ -143,8 +143,8 @@ fn_stop_graceful_sdtd() {
fn_print_dots "Graceful: telnet: ${telnetip}:${telnetport}"
fn_script_log_info "Graceful: telnet: ${telnetip}:${telnetport}"
fn_stop_graceful_sdtd_telnet
- completed=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Completed.")
- refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
+ completed=$(echo -en "\n ${sdtdtelnetshutdown}" | grep "Completed.")
+ refused=$(echo -en "\n ${sdtdtelnetshutdown}" | grep "Timeout or EOF")
if [ "${refused}" ]; then
fn_print_error "Graceful: telnet: ${telnetip}:${telnetport} : "
fn_print_fail_eol_nl
@@ -159,7 +159,7 @@ fn_stop_graceful_sdtd() {
if [ "${completed}" ]; then
for seconds in {1..30}; do
fn_stop_graceful_sdtd_telnet
- refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF")
+ refused=$(echo -en "\n ${sdtdtelnetshutdown}" | grep "Timeout or EOF")
if [ "${refused}" ]; then
fn_print_ok "Graceful: telnet: ${telnetip}:${telnetport} : "
fn_print_ok_eol_nl
@@ -185,7 +185,7 @@ fn_stop_graceful_sdtd() {
fi
echo -en "\n" | tee -a "${lgsmlog}"
echo -en "Telnet output:" | tee -a "${lgsmlog}"
- echo -en "\n ${sdtd_telnet_shutdown}" | tee -a "${lgsmlog}"
+ echo -en "\n ${sdtdtelnetshutdown}" | tee -a "${lgsmlog}"
echo -en "\n\n" | tee -a "${lgsmlog}"
fi
else
@@ -195,6 +195,95 @@ fn_stop_graceful_sdtd() {
fi
}
+# Attempts graceful shutdown of Soulmask using telnet.
+fn_stop_graceful_sm() {
+ fn_print_dots "Graceful: telnet"
+ fn_script_log_info "Graceful: telnet"
+ if [ "${telnetenabled}" == "false" ]; then
+ fn_print_info_nl "Graceful: telnet: DISABLED: Enable in ${servercfg}"
+ elif [ "$(command -v expect 2> /dev/null)" ]; then
+ # Tries to shutdown with both localhost and server IP.
+ for telnetip in 127.0.0.1 ${ip}; do
+ fn_print_dots "Graceful: telnet: ${telnetip}:${telnetport}"
+ fn_script_log_info "Graceful: telnet: ${telnetip}:${telnetport}"
+ fn_stop_graceful_sm_telnet
+ completed=$(echo -en "\n ${smtelnetshutdown}" | grep "Completed.")
+ refused=$(echo -en "\n ${smtelnetshutdown}" | grep "Timeout or EOF")
+ if [ "${refused}" ]; then
+ fn_print_error "Graceful: telnet: ${telnetip}:${telnetport} : "
+ fn_print_fail_eol_nl
+ fn_script_log_error "Graceful: telnet: ${telnetip}:${telnetport} : FAIL"
+ elif [ "${completed}" ]; then
+ break
+ fi
+ done
+
+ # If telnet shutdown was successful will use telnet again to check
+ # the connection has closed, confirming that the tmux session can now be killed.
+ if [ "${completed}" ]; then
+ for seconds in {1..30}; do
+ fn_stop_graceful_sm_telnet
+ refused=$(echo -en "\n ${smtelnetshutdown}" | grep "Timeout or EOF")
+ if [ "${refused}" ]; then
+ fn_print_ok "Graceful: telnet: ${telnetip}:${telnetport} : "
+ fn_print_ok_eol_nl
+ fn_script_log_pass "Graceful: telnet: ${telnetip}:${telnetport} : ${seconds} seconds"
+ if [ "${statusalert}" == "on" ] && [ "${firstcommandname}" == "STOP" ]; then
+ alert="stopped"
+ alert.sh
+ fi
+ break
+ fi
+ fn_sleep_time_1
+ fn_print_dots "Graceful: telnet: ${seconds}"
+ done
+ # If telnet shutdown fails, show it and stop
+ else
+ if [ "${refused}" ]; then
+ fn_print_error "Graceful: telnet: "
+ fn_print_fail_eol_nl
+ fn_script_log_error "Graceful: telnet: ${telnetip}:${telnetport} : FAIL"
+ else
+ fn_print_error_nl "Graceful: telnet: Unknown error"
+ fn_script_log_error "Graceful: telnet: Unknown error"
+ fi
+ echo -en "\n" | tee -a "${lgsmlog}"
+ echo -en "Telnet output:" | tee -a "${lgsmlog}"
+ echo -en "\n ${smtelnetshutdown}" | tee -a "${lgsmlog}"
+ echo -en "\n\n" | tee -a "${lgsmlog}"
+ fi
+ else
+ fn_print_warn "Graceful: telnet: expect not installed: "
+ fn_print_fail_eol_nl
+ fn_script_log_warn "Graceful: telnet: expect not installed: FAIL"
+ fi
+}
+
+# telnet command for soulmask graceful shutdown.
+fn_stop_graceful_sm_telnet() {
+ smtelnetshutdown=$(expect -c '
+ proc abort {} {
+ puts "Timeout or EOF\n"
+ exit 1
+ }
+ spawn telnet '"${telnetip}"' '"${telnetport}"'
+ expect {
+ "Hello:" { send "saveworld 1\r" }
+ default abort
+ }
+ expect {
+ "the world is saved." { send "quit 1\r" }
+ default abort
+ }
+ expect {
+ "World is closing..." {}
+ default abort
+ }
+ expect { eof }
+ puts "Completed.\n"
+ ')
+}
+
# Attempts graceful shutdown by sending /save /stop.
fn_stop_graceful_avorion() {
fn_print_dots "Graceful: /save /stop"
@@ -253,6 +342,8 @@ fn_stop_graceful_select() {
fn_stop_graceful_cmd "end" 30
elif [ "${stopmode}" == "12" ]; then
fn_stop_graceful_cmd "shutdown" 30
+ elif [ "${stopmode}" == "13" ]; then
+ fn_stop_graceful_sm
fi
}
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index f083a4893..6a5bcc662 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -446,6 +446,11 @@ fix_sfc.sh() {
fn_fetch_module
}
+fix_sm.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
fix_st.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
diff --git a/lgsm/modules/fix.sh b/lgsm/modules/fix.sh
index dbb8e3545..e6e00465d 100644
--- a/lgsm/modules/fix.sh
+++ b/lgsm/modules/fix.sh
@@ -52,7 +52,7 @@ fn_apply_fix() {
fi
}
-apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr ro rust rw samp sdtd sfc sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
+apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr ro rust rw samp sdtd sfc sm sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
apply_post_install_fix=(av kf kf2 ro ut2k4 ut ut3)
# validate registered fixes for safe development
diff --git a/lgsm/modules/fix_sm.sh b/lgsm/modules/fix_sm.sh
new file mode 100644
index 000000000..1d72a48bf
--- /dev/null
+++ b/lgsm/modules/fix_sm.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+# LinuxGSM fix_sm.sh module
+# Author: Daniel Gibbs
+# Contributors: http://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Resolves issues with Unturned.
+
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/linux64"
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index f4caa5a7f..0f38ea250 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1970,7 +1970,7 @@ fn_info_game_sdtd() {
telnetenabled="${telnetenabled:-"NOT SET"}"
# Telnet IP will be localhost if no password is set
# check_ip will set the IP first. This will overwrite it.
- if [ -z "${telnetpass}" ]; then
+ if [ -z "${telnetpassword}" ]; then
telnetip="127.0.0.1"
fi
telnetpass="${telnetpass:-"NOT SET"}"
@@ -1988,6 +1988,19 @@ fn_info_game_sf() {
beaconport="${beaconport:-"0"}"
}
+# Config Type: Parameters (with an ini)
+fn_info_game_sm() {
+ servername="${servername:-"NOT SET"}"
+ adminpassword="${adminpassword:-"NOT SET"}"
+ port="${port:-"0"}"
+ queryport="${queryport:-"0"}"
+ maxplayers="${maxplayers:-"0"}"
+ # telnet config
+ telnetenabled=true
+ telnetip="127.0.0.1"
+ telnetport="${telnetport:-"0"}"
+}
+
# Config Type: QuakeC
# Comment: // or /* */
# Example: set sv_hostname "SERVERNAME"
@@ -2407,6 +2420,8 @@ elif [ "${shortname}" == "sdtd" ]; then
fn_info_game_sdtd
elif [ "${shortname}" == "sf" ]; then
fn_info_game_sf
+elif [ "${shortname}" == "sm" ]; then
+ fn_info_game_sm
elif [ "${shortname}" == "sof2" ]; then
fn_info_game_sof2
elif [ "${shortname}" == "sol" ]; then
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index a5f25bc74..9bab0cbb7 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -30,8 +30,8 @@ fn_info_messages_password_strip() {
httppassword="********"
fi
- if [ "${telnetpass}" ]; then
- telnetpass="********"
+ if [ "${telnetpassword}" ]; then
+ telnetpassword="********"
fi
if [ "${wsapikey}" ]; then
@@ -483,6 +483,11 @@ fn_info_messages_gameserver() {
echo -e "${lightblue}Version Count:\t${default}${versioncount}"
fi
+ # backupinterval (Soulmask)
+ if [ -n "${backupinterval}" ]; then
+ echo -e "${lightblue}Backup Interval:\t${default}${backupinterval}"
+ fi
+
# Listed on Master server
if [ -n "${displaymasterserver}" ]; then
if [ "${displaymasterserver}" == "true" ]; then
@@ -702,6 +707,8 @@ fn_info_messages_ports() {
portcommand="ss -tuplwn | grep java"
elif [ "${shortname}" == "terraria" ]; then
portcommand="ss -tuplwn | grep Main"
+ elif [ "${shortname}" == "sm" ]; then
+ portcommand="ss -tuplwn | grep WSServer-Linux"
elif [ "${engine}" == "source" ]; then
portcommand="ss -tuplwn | grep srcds_linux"
elif [ "${engine}" == "goldsrc" ]; then
@@ -1435,7 +1442,7 @@ fn_info_messages_sdtd() {
{
echo -e "${lightblue}Telnet enabled:\t${default}${telnetenabled}"
echo -e "${lightblue}Telnet address:\t${default}${telnetip} ${telnetport}"
- echo -e "${lightblue}Telnet password:\t${default}${telnetpass}"
+ echo -e "${lightblue}Telnet password:\t${default}${telnetpassword}"
} | column -s $'\t' -t
}
@@ -1448,6 +1455,23 @@ fn_info_messages_sf() {
} | column -s $'\t' -t
}
+fn_info_messages_sm() {
+ fn_info_messages_password_strip
+ {
+ fn_port "header"
+ fn_port "Game" port udp
+ fn_port "Query" queryport udp
+ fn_port "Telnet" telnetport tcp
+ } | column -s $'\t' -t
+ echo -e ""
+ echo -e "${bold}${lightgreen}${gamename} Telnet${default}"
+ fn_messages_separator
+ {
+ echo -e "${lightblue}Telnet enabled:\t${default}${telnetenabled}"
+ echo -e "${lightblue}Telnet address:\t${default}${telnetip} ${telnetport}"
+ } | column -s $'\t' -t
+}
+
fn_info_messages_sof2() {
{
fn_port "header"
@@ -1842,6 +1866,8 @@ fn_info_messages_select_engine() {
fn_info_messages_sdtd
elif [ "${shortname}" == "sf" ]; then
fn_info_messages_sf
+ elif [ "${shortname}" == "sm" ]; then
+ fn_info_messages_sm
elif [ "${shortname}" == "sof2" ]; then
fn_info_messages_sof2
elif [ "${shortname}" == "sol" ]; then
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index eea590f9e..22843c7b0 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -695,6 +695,9 @@ elif [ "${shortname}" == "sf" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "sm" ]; then
+ fn_default_config_local
+ fn_list_config_locations
elif [ "${shortname}" == "sol" ]; then
array_configs+=(soldat.ini)
fn_fetch_default_config
From 5ed5b802763d7b9f900dd816466e41a404f36ea1 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 11 Aug 2024 18:23:24 +0100
Subject: [PATCH 044/154] fix(gamedig): Update gamedig version to resolve a bug
#4624
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index d4146ee20..e40e99e55 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,6 @@
},
"homepage": "https://github.com/GameServerManagers/LinuxGSM#readme",
"dependencies": {
- "gamedig": "^5.0.0-beta.2"
+ "gamedig": "^5.1.1"
}
}
From ac208c7a056a0a96433fdac8973a400e28b80de0 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 11 Aug 2024 18:27:03 +0100
Subject: [PATCH 045/154] Release v24.2.2
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index f083a4893..730fe58b7 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.2.1"
+modulesversion="v24.2.2"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 8db9a57c9..bafc8a3a0 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.2.1"
+version="v24.2.2"
shortname="core"
gameservername="core"
commandname="CORE"
From d86bec9acf931932721c52cafbedd29d80ea351c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 11 Aug 2024 19:32:55 +0100
Subject: [PATCH 046/154] fix(mcb): timestamp disabled for MCB as breaks update
check
---
lgsm/modules/command_start.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/command_start.sh b/lgsm/modules/command_start.sh
index f38125a5e..cca044518 100644
--- a/lgsm/modules/command_start.sh
+++ b/lgsm/modules/command_start.sh
@@ -80,7 +80,8 @@ fn_start_tmux() {
# Enable console logging.
if [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then
- if [ "${logtimestamp}" == "on" ]; then
+ # timestamp will break mcb update check.
+ if [ "${logtimestamp}" == "on" ] && [ "${shortname}" != "mcb" ]; then
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
else
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"
From a7a8e381526a81b60d855fffc575d42ccb382a05 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 12 Aug 2024 14:07:01 +0100
Subject: [PATCH 047/154] fix(gamedig): ensure that node modules are valid
---
lgsm/modules/check_gamedig.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
index 4155e6a69..8abc0b759 100644
--- a/lgsm/modules/check_gamedig.sh
+++ b/lgsm/modules/check_gamedig.sh
@@ -10,6 +10,10 @@ if [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)
echo -e "${bold}${lightyellow}Installing Gamedig${default}"
fn_script_log_info "Installing Gamedig"
cd "${lgsmdir}" || exit
- wget -N --no-check-certificate "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${githubbranch}/package.json"
+ curl -L -o package.json "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${githubbranch}/package.json"
npm install
+elif [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ]; then
+ cd "${lgsmdir}" || exit
+ curl -s -L -o package.json "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${githubbranch}/package.json"
+ npm update > /dev/null 2>&1
fi
From 23b342296c31a65f971ad2c562154a0519650214 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 12 Aug 2024 14:23:50 +0100
Subject: [PATCH 048/154] Release v24.2.3
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 730fe58b7..dbcec4f6f 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.2.2"
+modulesversion="v24.2.3"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index bafc8a3a0..eafb87406 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.2.2"
+version="v24.2.3"
shortname="core"
gameservername="core"
commandname="CORE"
From 182c6730725d2e6a6b3512ff82efe55515ce435c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 12 Aug 2024 16:20:38 +0100
Subject: [PATCH 049/154] fix(samp): update samp url
---
lgsm/modules/install_server_files.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index c5fe822ad..7ebac259f 100644
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -191,7 +191,7 @@ fn_install_server_files() {
force="noforce"
md5="581a333cc7eacda2f56d5a00fe11eafa"
elif [ "${shortname}" == "samp" ]; then
- remote_fileurl="https://files.sa-mp.com/samp037svr_R2-1.tar.gz"
+ remote_fileurl="https://files.samp-sc.com/samp037svr_R2-1.tar.gz"
local_filedir="${tmpdir}"
local_filename="samp037svr_R2-1.tar.gz"
chmodx="nochmodx" run="norun"
From e060865aefc510aeb75539302891072bfc0d81c2 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 12 Aug 2024 22:56:20 +0100
Subject: [PATCH 050/154] feat(dev): add nocache if dev-debug is enabled
(#4597)
---
lgsm/modules/command_update_linuxgsm.sh | 43 ++++++++++++++-----------
1 file changed, 25 insertions(+), 18 deletions(-)
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index 43827a672..4358b626c 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -15,14 +15,21 @@ check.sh
info_distro.sh
info_game.sh
+# Prevent github from using a cached version of the file if dev-debug is enabled.
+if [ -f "${rootdir}/.dev-debug" ]; then
+ nocache="-H \"Cache-Control: no-cache\" -H \"Pragma: no-cache\""
+fi
+
fn_script_log_info "Updating LinuxGSM"
fn_print_dots "Selecting repo"
fn_script_log_info "Selecting repo"
# Select remotereponame
-curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
+
+curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
+
if [ $? != "0" ]; then
- curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ curl curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
if [ $? != "0" ]; then
fn_print_fail_nl "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
fn_script_log_fail "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
@@ -39,9 +46,9 @@ fi
# Check linuxsm.sh
echo -en "checking ${remotereponame} linuxgsm.sh...\c"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
else
- curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -51,9 +58,9 @@ if [ $? != "0" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
+ tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
else
- tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
+ tmp_script_diff=$(diff "${tmpdir}/linuxgsm.sh" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
fi
if [ "${tmp_script_diff}" != "" ]; then
@@ -119,9 +126,9 @@ fi
echo -en "checking ${remotereponame} config _default.cfg...\c"
fn_script_log_info "Checking ${remotereponame} config _default.cfg"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
else
- curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -131,9 +138,9 @@ if [ $? != "0" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
+ config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
else
- config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
+ config_file_diff=$(diff "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
fi
if [ "${config_file_diff}" != "" ]; then
@@ -153,9 +160,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
else
- curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -165,9 +172,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
else
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
fi
if [ "${config_file_diff}" != "" ]; then
@@ -191,9 +198,9 @@ if [ -n "${modulesdir}" ]; then
echo -en "checking ${remotereponame} module ${modulefile}...\c"
github_file_url_dir="lgsm/modules"
if [ "${remotereponame}" == "GitHub" ]; then
- curl --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
else
- curl --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
fi
if [ $? != 0 ]; then
fn_print_error_eol_nl
@@ -210,9 +217,9 @@ if [ -n "${modulesdir}" ]; then
else
# compare file
if [ "${remotereponame}" == "GitHub" ]; then
- module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}"))
+ module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}"))
else
- module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}"))
+ module_file_diff=$(diff "${modulesdir}/${modulefile}" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}"))
fi
# results
From 7ece812c8c7a97f1248148ab59526ab9f377830e Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 12 Aug 2024 23:04:48 +0100
Subject: [PATCH 051/154] refactor: refactor check_permissions.sh (#4626)
Refactored the code in check_permissions.sh to improve readability and maintainability. Made changes to variable names for clarity and removed unnecessary comments. Also, refactored the fn_sys_perm_errors_detect function name for consistency.
---
lgsm/modules/check_permissions.sh | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index 31c64cd17..3ee404ba9 100644
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -13,6 +13,11 @@ fn_check_ownership() {
selfownissue=1
fi
fi
+ if [ -d "${lgsmdir}" ]; then
+ if [ "$(find "${lgsmdir}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
+ lgsmownissue=1
+ fi
+ fi
if [ -d "${modulesdir}" ]; then
if [ "$(find "${modulesdir}" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
funcownissue=1
@@ -23,18 +28,18 @@ fn_check_ownership() {
filesownissue=1
fi
fi
- if [ "${selfownissue}" == "1" ] || [ "${funcownissue}" == "1" ] || [ "${filesownissue}" == "1" ]; then
+ if [ "${selfownissue}" == "1" ] || [ "${lgsmownissue}" == "1" ] || [ "${filesownissue}" == "1" ]; then
fn_print_fail_nl "Ownership issues found"
fn_script_log_fail "Ownership issues found"
fn_print_information_nl "The current user ($(whoami)) does not have ownership of the following files:"
fn_script_log_info "The current user ($(whoami)) does not have ownership of the following files:"
{
- echo -e "User\tGroup\tFile\n"
+ echo -en "User\tGroup\tFile:"
if [ "${selfownissue}" == "1" ]; then
find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi
- if [ "${funcownissue}" == "1" ]; then
- find "${modulesdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
+ if [ "${lgsmownissue}" == "1" ]; then
+ find "${lgsmdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi
if [ "${filesownissue}" == "1" ]; then
find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
@@ -53,15 +58,18 @@ fn_check_ownership() {
}
fn_check_permissions() {
+ # Check modules files are executable.
if [ -d "${modulesdir}" ]; then
- if [ "$(find "${modulesdir}" -type f -not -executable | wc -l)" -ne "0" ]; then
+ findnotexecutable="$(find "${modulesdir}" -type f -not -executable)"
+ findnotexecutablewc="$(echo "${findnotexecutable}" | wc -l)"
+ if [ "${findnotexecutablewc}" -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fail "Permissions issues found"
fn_print_information_nl "The following files are not executable:"
fn_script_log_info "The following files are not executable:"
{
- echo -e "File\n"
- find "${modulesdir}" -type f -not -executable -printf "%p\n"
+ echo -en "File:"
+ echo -en "${findnotexecutable}"
} | column -s $'\t' -t | tee -a "${lgsmlog}"
if [ "${monitorflag}" == 1 ]; then
alert="permissions"
@@ -72,8 +80,8 @@ fn_check_permissions() {
fi
# Check rootdir permissions.
- if [ "${rootdir}" ]; then
- # Get permission numbers on directory under the form 775.
+ if [ -d "${rootdir}" ]; then
+ # Get permission numbers on directory should return 775.
rootdirperm=$(stat -c %a "${rootdir}")
# Grab the first and second digit for user and group permission.
userrootdirperm="${rootdirperm:0:1}"
@@ -92,6 +100,7 @@ fn_check_permissions() {
core_exit.sh
fi
fi
+
# Check if executable is executable and attempt to fix it.
# First get executable name.
execname=$(basename "${executable}")
@@ -141,7 +150,7 @@ fn_check_permissions() {
fi
}
-## The following fn_sys_perm_* modules checks for permission errors in /sys directory.
+## The following fn_sys_perm_* function checks for permission errors in /sys directory.
# Checks for permission errors in /sys directory.
fn_sys_perm_errors_detect() {
From c8f36ff2afbc357335c309c61ddc473ecb6a6fdd Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 12 Aug 2024 23:06:35 +0100
Subject: [PATCH 052/154] add missing sm-icon.png
---
lgsm/data/gameicons/sm-icon.png | Bin 0 -> 764 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 lgsm/data/gameicons/sm-icon.png
diff --git a/lgsm/data/gameicons/sm-icon.png b/lgsm/data/gameicons/sm-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..7948e002d650275f90ef0ef1ea5db87b14bbdb2c
GIT binary patch
literal 764
zcmex=^lOiET&UP@Y7ModgWM?qOlT~kX_QeM|USHnP6LsJ7}2qQZ?I~NC+Fc+7w
zhLo6;2Fc+60R}-11_cHMW=16jCP7AKLB{__7$g`Nm>C%vkO0uF>>NNDEdd55CMHH^
zW)?awse6$&vxPS{hr>B*US)IlIh@af9Iy-Gm`F1KPWF}x^LOO
z#b;|>xhy@VoQ;gMeiZj`!usaT3*WArm{eR8aQsOE
Date: Tue, 13 Aug 2024 23:02:26 +0100
Subject: [PATCH 053/154] fix permissions bug
---
lgsm/modules/check_permissions.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index 3ee404ba9..d2cd5890c 100644
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -61,7 +61,7 @@ fn_check_permissions() {
# Check modules files are executable.
if [ -d "${modulesdir}" ]; then
findnotexecutable="$(find "${modulesdir}" -type f -not -executable)"
- findnotexecutablewc="$(echo "${findnotexecutable}" | wc -l)"
+ findnotexecutablewc="$(find "${modulesdir}" -type f -not -executable | wc -l)"
if [ "${findnotexecutablewc}" -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fail "Permissions issues found"
From eef84ba903da3a21b2a029636e3b758b8cd787ec Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 13 Aug 2024 23:17:34 +0100
Subject: [PATCH 054/154] feat: add ismygameserver.online to discord alerts
---
lgsm/modules/alert_discord.sh | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 2b2ecf21b..c98bef765 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -51,6 +51,11 @@ jsoninfo=$(
"name": "Hostname",
"value": "${HOSTNAME}",
"inline": true
+ },
+ {
+ "name": "Is my Game Server Online?",
+ "value": "https://ismygameserver.online/${querytype}/${alertip}:${queryport}",
+ "inline": true
},
{
"name": "More info",
From ce27b7301b6701db1b082c120eaab0f93f033d32 Mon Sep 17 00:00:00 2001
From: Stephan Schaffner
Date: Wed, 28 Aug 2024 22:32:38 +0200
Subject: [PATCH 055/154] feat(newserver): add Xonotic (#4633)
* Adding default_cfg and Distro Requirements
* Adding Shellscripts for Xonotic
* Fixing serverlist.csv
* Fixing again serverlist.csv
* Fixed Typo
* Changing Shortname to XNT
* Fixing missed _default.cfg change
* Fixing _default.cfg
* Updating Modules and Server installation
* Updating paths and install script
* Fixing install Scripts Issues
* Update info_game.sh
* Updating Game Info Curling
* fix bug with npm download of gamedig on branches
* styling fix
* move to fix
* typo
* bug
* add missing details
* edit using config
* add missing servercfgfullpath
* bug
* config settings update
* update cp command based off warn message
* fix dir
* update dirs
* fix exit code
* fix dir install
* remove -v
* update settings
* update info game
* update config type
* fix dir
* update config parsing
* change to remove config
* add server.cfg
* remove serverconfigdefault
* add new default
* move to use an updater
* send key to update function
* typo
* change extract location
* update directory location
* filename fix
* update dirs
* fix extraction
* creatre datadir if missing
* consoleinteract yes
* lint
---------
Co-authored-by: Stephan Schaffner
Co-authored-by: Daniel Gibbs
---
.../config-lgsm/xntserver/_default.cfg | 171 +++++++++++++++++
lgsm/data/almalinux-8.csv | 1 +
lgsm/data/almalinux-9.csv | 1 +
lgsm/data/centos-7.csv | 1 +
lgsm/data/centos-8.csv | 1 +
lgsm/data/centos-9.csv | 1 +
lgsm/data/debian-10.csv | 1 +
lgsm/data/debian-11.csv | 1 +
lgsm/data/debian-12.csv | 1 +
lgsm/data/debian-13.csv | 1 +
lgsm/data/debian-9.csv | 1 +
lgsm/data/rhel-7.csv | 1 +
lgsm/data/rhel-8.csv | 1 +
lgsm/data/rhel-9.csv | 1 +
lgsm/data/rocky-8.csv | 1 +
lgsm/data/rocky-9.csv | 1 +
lgsm/data/serverlist.csv | 1 +
lgsm/data/ubuntu-16.04.csv | 1 +
lgsm/data/ubuntu-18.04.csv | 1 +
lgsm/data/ubuntu-20.04.csv | 1 +
lgsm/data/ubuntu-22.04.csv | 1 +
lgsm/data/ubuntu-23.04.csv | 1 +
lgsm/data/ubuntu-23.10.csv | 1 +
lgsm/data/ubuntu-24.04.csv | 1 +
lgsm/modules/check_gamedig.sh | 4 +-
lgsm/modules/command_update.sh | 2 +
lgsm/modules/core_dl.sh | 5 +-
lgsm/modules/core_modules.sh | 15 ++
lgsm/modules/fix.sh | 2 +-
lgsm/modules/fix_xnt.sh | 13 ++
lgsm/modules/info_game.sh | 19 ++
lgsm/modules/info_messages.sh | 14 +-
lgsm/modules/install_config.sh | 30 ++-
lgsm/modules/install_server_files.sh | 86 ++++++---
lgsm/modules/update_xnt.sh | 173 ++++++++++++++++++
35 files changed, 515 insertions(+), 42 deletions(-)
create mode 100644 lgsm/config-default/config-lgsm/xntserver/_default.cfg
create mode 100644 lgsm/modules/fix_xnt.sh
create mode 100644 lgsm/modules/update_xnt.sh
diff --git a/lgsm/config-default/config-lgsm/xntserver/_default.cfg b/lgsm/config-default/config-lgsm/xntserver/_default.cfg
new file mode 100644
index 000000000..402e6188f
--- /dev/null
+++ b/lgsm/config-default/config-lgsm/xntserver/_default.cfg
@@ -0,0 +1,171 @@
+##################################
+######## Default Settings ########
+##################################
+# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
+# Copy settings from here and use them in either:
+# common.cfg - applies settings to every instance.
+# [instance].cfg - applies settings to a specific instance.
+
+#### Game Server Settings ####
+
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+
+## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
+startparameters="-userdir ${systemdir}/${selfname}"
+
+#### LinuxGSM Settings ####
+
+## LinuxGSM Stats
+# Send useful stats to LinuxGSM developers.
+# https://docs.linuxgsm.com/configuration/linuxgsm-stats
+# (on|off)
+stats="off"
+
+## Notification Alerts
+# (on|off)
+
+# Display IP | https://docs.linuxgsm.com/alerts#display-ip
+displayip=""
+
+# More info | https://docs.linuxgsm.com/alerts#more-info
+postalert="off"
+
+# Alert on Start/Stop/Restart
+statusalert="off"
+
+# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
+discordalert="off"
+discordwebhook="webhook"
+
+# Email Alerts | https://docs.linuxgsm.com/alerts/email
+emailalert="off"
+email="email@example.com"
+emailfrom=""
+
+# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
+gotifyalert="off"
+gotifytoken="token"
+gotifywebhook="webhook"
+
+# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
+iftttalert="off"
+ifttttoken="accesstoken"
+iftttevent="linuxgsm_alert"
+
+# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
+pushbulletalert="off"
+pushbullettoken="accesstoken"
+channeltag=""
+
+# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
+pushoveralert="off"
+pushovertoken="accesstoken"
+pushoveruserkey="userkey"
+
+# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
+rocketchatalert="off"
+rocketchatwebhook="webhook"
+
+# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
+slackalert="off"
+slackwebhook="webhook"
+
+# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
+# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
+# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help all".
+telegramapi="api.telegram.org"
+telegramalert="off"
+telegramtoken="accesstoken"
+telegramchatid=""
+telegramthreadid=""
+telegramsilentnotification="false"
+curlcustomstring=""
+
+## Backup | https://docs.linuxgsm.com/commands/backup
+maxbackups="4"
+maxbackupdays="30"
+stoponbackup="on"
+
+## Logging | https://docs.linuxgsm.com/features/logging
+consolelogging="on"
+logdays="7"
+
+## Monitor | https://docs.linuxgsm.com/commands/monitor
+# Query delay time
+querydelay="1"
+
+## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
+ansi="on"
+
+#### Advanced Settings ####
+
+## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
+sleeptime="0.5"
+
+## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
+# 1: tmux kill
+# 2: CTRL+c
+# 3: quit
+# 4: quit 120s
+# 5: stop
+# 6: q
+# 7: exit
+# 8: 7 Days to Die
+# 9: GoldSrc
+# 10: Avorion
+# 11: end
+stopmode="2"
+
+## Query mode
+# 1: session only
+# 2: gamedig (gsquery fallback)
+# 3: gamedig
+# 4: gsquery
+# 5: tcp
+querymode="3"
+querytype="xonotic"
+
+## Console type
+consoleverbose="yes"
+consoleinteract="yes"
+
+## Game Server Details
+# Do not edit
+gamename="Xonotic"
+engine="unreal3"
+glibc="2.29"
+
+#### Directories ####
+# Edit with care
+
+## Game Server Directories
+systemdir="${serverfiles}"
+executabledir="${systemdir}"
+executable="./xonotic-linux64-dedicated"
+servercfgdir="${systemdir}/${selfname}/data"
+servercfg="server.cfg"
+servercfgdefault="${systemdir}/server.cfg"
+servercfgfullpath="${servercfgdir}/${servercfg}"
+
+## Backup Directory
+backupdir="${lgsmdir}/backup"
+
+## Logging Directories
+[ -n "${LGSM_LOGDIR}" ] && logdir="${LGSM_LOGDIR}" || logdir="${rootdir}/log"
+gamelogdir="${logdir}/server"
+lgsmlogdir="${logdir}/script"
+consolelogdir="${logdir}/console"
+gamelog="${gamelogdir}/${selfname}-game.log"
+lgsmlog="${lgsmlogdir}/${selfname}-script.log"
+consolelog="${consolelogdir}/${selfname}-console.log"
+alertlog="${lgsmlogdir}/${selfname}-alert.log"
+postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
+
+## Logs Naming
+lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
+consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"
+gamelogdate="${gamelogdir}/${selfname}-game-$(date '+%Y-%m-%d-%H:%M:%S').log"
+
+## Log Parameters
+logtimestamp="off"
+logtimestampformat="%Y-%m-%d %H:%M:%S"
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index 204242144..d4d2456bd 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 02f21426c..7dae6338e 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index a536c9c0f..266b358ba 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index d4d008fd4..bd5b72c33 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index 574401733..893f3698c 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index 6b1a843bb..6bfa1dae4 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-11-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 60a46f55d..5441a69b4 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-17-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 0fd50f2d7..1c0a39930 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-17-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
index 6d16deb9f..af262abb6 100644
--- a/lgsm/data/debian-13.csv
+++ b/lgsm/data/debian-13.csv
@@ -133,5 +133,6 @@ wet
wf
wmc,openjdk21-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index 174bd8e16..4e54ac241 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-8-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 8854649ad..7800136bb 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index 7dd334f38..f8bb1d492 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 02f21426c..7dae6338e 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index 7dd334f38..f8bb1d492 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 02f21426c..7dae6338e 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb
+xnt
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 7d2173321..8b408f84f 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -133,5 +133,6 @@ wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-22.04
wf,wfserver,Warfork,ubuntu-22.04
wmc,wmcserver,WaterfallMC,ubuntu-22.04
wurm,wurmserver,Wurm Unlimited,ubuntu-22.04
+xnt,xntserver,Xonotic,ubuntu-22.04
zmr,zmrserver,Zombie Master: Reborn,ubuntu-22.04
zps,zpsserver,Zombie Panic! Source,ubuntu-22.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 1f359ab9d..51f769c1a 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-8-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index cccd53dc7..7ca2d86c6 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-11-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 4c0cae0a8..f16d8b3be 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-21-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index b0f896fae..e84f4dddd 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-21-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 7ad90039b..c0135abd7 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-21-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 7ad90039b..c0135abd7 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-21-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index 7ad90039b..c0135abd7 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -134,5 +134,6 @@ wet
wf
wmc,openjdk-21-jre
wurm,xvfb
+xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
index 8abc0b759..61149d567 100644
--- a/lgsm/modules/check_gamedig.sh
+++ b/lgsm/modules/check_gamedig.sh
@@ -10,10 +10,10 @@ if [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)
echo -e "${bold}${lightyellow}Installing Gamedig${default}"
fn_script_log_info "Installing Gamedig"
cd "${lgsmdir}" || exit
- curl -L -o package.json "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${githubbranch}/package.json"
+ curl -L -o package.json "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/package.json"
npm install
elif [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ]; then
cd "${lgsmdir}" || exit
- curl -s -L -o package.json "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${githubbranch}/package.json"
+ curl -s -L -o package.json "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/package.json"
npm update > /dev/null 2>&1
fi
diff --git a/lgsm/modules/command_update.sh b/lgsm/modules/command_update.sh
index e1fcec97f..a579cfe8e 100644
--- a/lgsm/modules/command_update.sh
+++ b/lgsm/modules/command_update.sh
@@ -33,6 +33,8 @@ elif [ "${shortname}" == "vints" ]; then
update_vints.sh
elif [ "${shortname}" == "ut99" ]; then
update_ut99.sh
+elif [ "${shortname}" == "xnt" ]; then
+ update_xnt.sh
else
update_steamcmd.sh
fi
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index 89a63eb8b..908c90f38 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -251,7 +251,10 @@ fn_dl_extract() {
fi
elif [ "${mime}" == "application/zip" ]; then
if [ -n "${extractsrc}" ]; then
- extractcmd=$(unzip -qoj -d "${extractdest}" "${local_filedir}/${local_filename}" "${extractsrc}"/*)
+ temp_extractdir="${tmpdir}/Xonotic"
+ extractcmd=$(unzip -qo "${local_filedir}/${local_filename}" "${extractsrc}/*" -d "${temp_extractdir}")
+ find "${temp_extractdir}/${extractsrc}" -mindepth 1 -maxdepth 1 -exec mv -t "${extractdest}" {} +
+ rm -rf "${temp_extractdir}"
else
extractcmd=$(unzip -qo -d "${extractdest}" "${local_filedir}/${local_filename}")
fi
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 3cf0cd8e6..dad8dddf5 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -531,6 +531,11 @@ fix_wurm.sh() {
fn_fetch_module
}
+fix_xnt.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
fix_zmr.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
@@ -695,6 +700,11 @@ update_ut99.sh() {
fn_fetch_module
}
+update_xnt.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
fn_update_modules.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
@@ -821,6 +831,11 @@ if [ ! -d "${lockdir}" ]; then
mkdir -p "${lockdir}"
fi
+# Creates data dir if missing
+if [ ! -d "${datadir}" ]; then
+ mkdir -p "${datadir}"
+fi
+
# if $USER id missing set to whoami
if [ -z "${USER}" ]; then
USER="$(whoami)"
diff --git a/lgsm/modules/fix.sh b/lgsm/modules/fix.sh
index e6e00465d..6335659f1 100644
--- a/lgsm/modules/fix.sh
+++ b/lgsm/modules/fix.sh
@@ -52,7 +52,7 @@ fn_apply_fix() {
fi
}
-apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr ro rust rw samp sdtd sfc sm sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm zmr)
+apply_pre_start_fix=(arma3 armar ark av bt bo csgo cmw dst hw ins kf nmrih onset pvr ro rust rw samp sdtd sfc sm sof2 squad st tf2 terraria ts3 mcb mta unt vh wurm xnt zmr)
apply_post_install_fix=(av kf kf2 ro ut2k4 ut ut3)
# validate registered fixes for safe development
diff --git a/lgsm/modules/fix_xnt.sh b/lgsm/modules/fix_xnt.sh
new file mode 100644
index 000000000..218b99a66
--- /dev/null
+++ b/lgsm/modules/fix_xnt.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+# LinuxGSM fix_xnt.sh module
+# Author: Daniel Gibbs
+# Contributors: http://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Install Xonotic Default Config
+
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+# Create the directory if it doesn't exist
+if [ ! -d "${systemdir}/${selfname}/data" ]; then
+ mkdir -p "${systemdir}/${selfname}/data"
+fi
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 0f38ea250..d56d4fbff 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -2242,6 +2242,23 @@ fn_info_game_wf() {
servername="${servername:-"NOT SET"}"
}
+# Config Type: QuakeC
+# Comment: //
+# Filetype: cfg
+fn_info_game_xnt() {
+ if [ -f "${servercfgfullpath}" ]; then
+ fn_info_game_keyvalue_pairs_space "maxplayers" "maxplayers"
+ fn_info_game_keyvalue_pairs_space "port" "port"
+ fn_info_game_keyvalue_pairs_space "rconpassword" "rcon_password"
+ fn_info_game_keyvalue_pairs_space "servername" "hostname"
+ fi
+ maxplayers="${maxplayers:-"8"}"
+ port="${port:-"0"}"
+ queryport="${port}"
+ rconpassword="${rconpassword:-"NOT SET"}"
+ servername="${servername:-"NOT SET"}"
+}
+
fn_info_game_wmc() {
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
@@ -2476,6 +2493,8 @@ elif [ "${engine}" == "source" ] || [ "${engine}" == "goldsrc" ]; then
fn_info_game_source
elif [ "${engine}" == "unreal2" ]; then
fn_info_game_unreal2
+elif [ "${shortname}" == "xnt" ]; then
+ fn_info_game_xnt
fi
# Public IP address
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 9bab0cbb7..0bc444e5e 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -668,7 +668,7 @@ fn_info_messages_ports_edit() {
startparameterslocation="${red}UNKNOWN${default}"
# engines/games that require editing in the config file.
- local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "ct" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "wurm")
+ local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "ct" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "nec" "pc" "pc2" "prism3d" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "xnt" "wurm")
for port_edit in "${ports_edit_array[@]}"; do
if [ "${shortname}" == "ut3" ]; then
startparameterslocation="${servercfgdir}/UTWeb.ini"
@@ -1548,6 +1548,14 @@ fn_info_messages_st() {
} | column -s $'\t' -t
}
+fn_info_messages_stn() {
+ {
+ fn_port "header"
+ fn_port "Game" port udp
+ fn_port "Query" queryport udp
+ } | column -s $'\t' -t
+}
+
fn_info_messages_ti() {
{
fn_port "header"
@@ -1728,7 +1736,7 @@ fn_info_messages_wurm() {
} | column -s $'\t' -t
}
-fn_info_messages_stn() {
+fn_info_messages_xnt() {
{
fn_port "header"
fn_port "Game" port udp
@@ -1914,6 +1922,8 @@ fn_info_messages_select_engine() {
fn_info_messages_wf
elif [ "${shortname}" == "wurm" ]; then
fn_info_messages_wurm
+ elif [ "${shortname}" == "xnt" ]; then
+ fn_info_messages_xnt
elif [ "${engine}" == "goldsrc" ]; then
fn_info_messages_goldsrc
elif [ "${engine}" == "prism3d" ]; then
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 22843c7b0..96ae70654 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -41,15 +41,15 @@ fn_default_config_remote() {
fn_script_log_info "Copying ${servercfg} config file."
if [ "${config}" == "${servercfgdefault}" ]; then
mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
+ cp -v --update=none "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
elif [ "${shortname}" == "arma3" ] && [ "${config}" == "${networkcfgdefault}" ]; then
mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
+ cp -v --update=none "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
elif [ "${shortname}" == "dst" ] && [ "${config}" == "${clustercfgdefault}" ]; then
- cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
+ cp -v --update=none "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
else
mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
+ cp -v --update=none "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
fi
done
fn_sleep_time
@@ -62,14 +62,21 @@ fn_default_config_local() {
fn_messages_separator
echo -e "Copying default configs."
fn_check_cfgdir
- echo -en "copying config file [ ${italic}${servercfgdefault}${default} ]"
- cp -n "${servercfgdir}/${servercfgdefault}" "${servercfgfullpath}"
+
+ # Check if the directory for ${servercfgfullpath} exists, if not, create it
+ if [ ! -d "$(dirname "${servercfgfullpath}")" ]; then
+ mkdir -p "$(dirname "${servercfgfullpath}")"
+ fi
+
+ echo -en "copying config file [ ${italic}${servercfgdefault}${default} ]: "
+ cp --update=none "${servercfgdir}/${servercfgdefault}" "${servercfgfullpath}"
+ exitcode=$?
if [ "${exitcode}" != 0 ]; then
fn_print_fail_eol
- fn_script_log_fail "copying config file [ ${servercfgdefault} ]"
+ fn_script_log_fail "copying config file [ ${servercfgdefault} ]: "
else
fn_print_ok_eol
- fn_script_log_pass "copying config file [ ${servercfgdefault} ]"
+ fn_script_log_pass "copying config file [ ${servercfgdefault} ]: "
fi
}
@@ -835,6 +842,13 @@ elif [ "${shortname}" == "wmc" ]; then
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
+ fn_list_config_locations
+elif [ "${shortname}" == "xnt" ]; then
+ array_configs+=(server.cfg)
+ fn_fetch_default_config
+ fn_default_config_remote
+ fn_set_config_vars
+ fn_list_config_locations
elif [ "${shortname}" == "wurm" ]; then
array_configs+=(server.cfg)
fn_fetch_default_config
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index 7ebac259f..57ce58ca7 100644
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -12,196 +12,224 @@ fn_install_server_files() {
remote_fileurl="http://linuxgsm.download/ActionHalfLife/action_halflife-1.0.tar.xz"
local_filedir="${tmpdir}"
local_filename="action_halflife-1.0.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="61d7b79fd714888b6d65944fdaafa94a"
elif [ "${shortname}" == "bf1942" ]; then
remote_fileurl="http://linuxgsm.download/BattleField1942/bf1942_lnxded-1.61-hacked-to-1.612.full.tar.xz"
local_filedir="${tmpdir}"
local_filename="bf1942_lnxded-1.61-hacked-to-1.612.full.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="4223bf4ed85f5162c24b2cba51249b9e"
elif [ "${shortname}" == "bfv" ]; then
remote_fileurl="http://linuxgsm.download/BattlefieldVietnam/bfv_linded-v1.21-20041207_patch.tar.xz"
local_filedir="${tmpdir}"
local_filename="bfv_linded-v1.21-20041207_patch.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="e3b4962cdd9d41e23c6fed65101bccde"
elif [ "${shortname}" == "bb" ]; then
remote_fileurl="http://linuxgsm.download/BrainBread/brainbread-v1.2-linuxserver.tar.xz"
local_filedir="${tmpdir}"
local_filename="brainbread-v1.2-linuxserver.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="55f227183b736397806d5b6db6143f15"
elif [ "${shortname}" == "cod" ]; then
remote_fileurl="http://linuxgsm.download/CallOfDuty/cod-lnxded-1.5b-full.tar.xz"
local_filedir="${tmpdir}"
local_filename="cod-lnxded-1.5-large.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="ee0ad1ccbfa1fd27fde01a4a431a5c2f"
elif [ "${shortname}" == "coduo" ]; then
remote_fileurl="http://linuxgsm.download/CallOfDutyUnitedOffensive/coduo-lnxded-1.51b-full.tar.xz"
local_filedir="${tmpdir}"
local_filename="coduo-lnxded-1.51b-full.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="35cabccd67adcda44aaebc59405915b9"
elif [ "${shortname}" == "cod2" ]; then
remote_fileurl="http://linuxgsm.download/CallOfDuty2/cod2-lnxded-1.3-full.tar.xz"
local_filedir="${tmpdir}"
local_filename="cod2-lnxded-1.3-full.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="b8c4c611f01627dd43348e78478a3d41"
elif [ "${shortname}" == "cod4" ]; then
remote_fileurl="http://linuxgsm.download/CallOfDuty4/cod4x18_lnxded.tar.xz"
local_filedir="${tmpdir}"
local_filename="cod4x18_lnxded.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="d255b59b9756d7dbead67718208512ee"
elif [ "${shortname}" == "codwaw" ]; then
remote_fileurl="http://linuxgsm.download/CallOfDutyWorldAtWar/codwaw-lnxded-1.7-full.tar.xz"
local_filedir="${tmpdir}"
local_filename="codwaw-lnxded-1.7-full.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="2c6be1bb66ea631b9b2e7ae6216c6680"
elif [ "${shortname}" == "etl" ]; then
remote_fileurl="http://linuxgsm.download/WolfensteinEnemyTerritory/etlegacy-v2.78.1-i386-et-260b.tar.xz"
local_filedir="${tmpdir}"
local_filename="etlegacy-v2.78.1-i386-et-260b.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="7c08b52cb09b30eadb98ea05ef780fc7"
elif [ "${shortname}" == "mohaa" ]; then
remote_fileurl="http://linuxgsm.download/MedalofHonorAlliedAssault/moh_revival_v1.12_RC3.5.1.tar.xz"
local_filedir="${tmpdir}"
local_filename="moh_revival_v1.12_RC3.5.1.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="7c664538999252eeaf2b6d9949416480"
elif [ "${shortname}" == "ns" ]; then
remote_fileurl="http://linuxgsm.download/NaturalSelection/ns_dedicated_server_v32.tar.xz"
local_filedir="${tmpdir}"
local_filename="ns_dedicated_server_v32.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="23ec3cadd93d8bb1c475bad5b9cce370"
elif [ "${shortname}" == "q2" ]; then
remote_fileurl="http://linuxgsm.download/Quake2/quake2-3.20-glibc-i386-full-linux2.0.tar.xz"
local_filedir="${tmpdir}"
local_filename="quake2-3.20-glibc-i386-full-linux2.0.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="2908164a32d4808bb720f2161f6b0c82"
elif [ "${shortname}" == "q3" ]; then
remote_fileurl="http://linuxgsm.download/Quake3/quake3-1.32c-x86-full-linux.tar.xz"
local_filedir="${tmpdir}"
local_filename="quake3-1.32c-x86-full-linux.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="b0e26d8919fe9313fb9d8ded2360f3db"
elif [ "${shortname}" == "q4" ]; then
remote_fileurl="http://linuxgsm.download/Quake4/quake4-1.4.2-x86-linuxded.tar.xz"
local_filedir="${tmpdir}"
local_filename="quake4-1.4.2-x86-linuxded.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="afe30b44f23c8ae2ce6f0f464473d8ba"
elif [ "${shortname}" == "qw" ]; then
remote_fileurl="http://linuxgsm.download/QuakeWorld/nquake.server.linux.190506.full.tar.xz"
local_filedir="${tmpdir}"
local_filename="nquake.server.linux.190506.full.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="82055b7d973206c13a606db8ba288d03"
elif [ "${shortname}" == "rtcw" ]; then
remote_fileurl="http://linuxgsm.download/ReturnToCastleWolfenstein/iortcw-1.51c-x86_64-server-linux-20190507.tar.xz"
local_filedir="${tmpdir}"
local_filename="iortcw-1.51c-x86_64-server-linux-20190507.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="df6ff664d37dd0d22787848bdb3cac5f"
elif [ "${shortname}" == "sfc" ]; then
remote_fileurl="http://linuxgsm.download/SourceFortsClassic/SFClassic-1.0-RC7-fix.tar.xz"
local_filedir="${tmpdir}"
local_filename="SFClassic-1.0-RC7-fix.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="70077137185700e28fe6bbb6021d12bc"
elif [ "${shortname}" == "sof2" ]; then
remote_fileurl="http://linuxgsm.download/SoldierOfFortune2/sof2gold-1.03.tar.xz"
local_filedir="${tmpdir}"
local_filename="sof2gold-1.03.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="201e23bab04207d00ce813d001c483d9"
elif [ "${shortname}" == "ts" ]; then
remote_fileurl="http://linuxgsm.download/TheSpecialists/ts-3-linux-final.tar.xz"
local_filedir="${tmpdir}"
local_filename="ts-3-linux-final.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="3c66ecff6e3644f7ac88015732a0fb93"
elif [ "${shortname}" == "ut2k4" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament2004/ut2004-server-3369-3-ultimate-linux.tar.xz"
local_filedir="${tmpdir}"
local_filename="ut2004-server-3369-3-ultimate-linux.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="9fceaab68554749f4b45be66613b9a15"
elif [ "${shortname}" == "ut99" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament99/ut99-server-469b-ultimate-linux.tar.xz"
local_filedir="${tmpdir}"
local_filename="ut99-server-469b-ultimate-linux.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="dba3f1122a5e60ee45ece7422fcf78f5"
elif [ "${shortname}" == "ut" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament/UnrealTournament-Server-XAN-3525360-Linux.tar.xz"
local_filedir="${tmpdir}"
local_filename="UnrealTournament-Server-XAN-3525360-Linux.tar.xz"
- chmodx="noexecute" run="norun"
+ chmodx="noexecute"
+ run="norun"
force="noforce"
md5="41dd92015713a78211eaccf503b72393"
elif [ "${shortname}" == "ut3" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament3/UT3-linux-server-2.1.tar.xz"
local_filedir="${tmpdir}"
local_filename="UT3-linux-server-2.1.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="8876cca61e3f83ea08db25208bde6ac6"
elif [ "${shortname}" == "vs" ]; then
remote_fileurl="http://linuxgsm.download/VampireSlayer/vs_l-6.0_full.tar.xz"
local_filedir="${tmpdir}"
local_filename="vs_l-6.0_full.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="b322f79e0abd31847493c52acf802667"
elif [ "${shortname}" == "wet" ]; then
remote_fileurl="http://linuxgsm.download/WolfensteinEnemyTerritory/enemy-territory.260b.tar.xz"
local_filedir="${tmpdir}"
local_filename="enemy-territory.260b.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="581a333cc7eacda2f56d5a00fe11eafa"
elif [ "${shortname}" == "samp" ]; then
remote_fileurl="https://files.samp-sc.com/samp037svr_R2-1.tar.gz"
local_filedir="${tmpdir}"
local_filename="samp037svr_R2-1.tar.gz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="93705e165550c97484678236749198a4"
elif [ "${shortname}" == "zmr" ]; then
remote_fileurl="http://linuxgsm.download/ZombieMasterReborn/zombie_master_reborn_b6_1.tar.xz"
local_filedir="${tmpdir}"
local_filename="zombie_master_reborn_b6_1.tar.xz"
- chmodx="nochmodx" run="norun"
+ chmodx="nochmodx"
+ run="norun"
force="noforce"
md5="0188ae86dbc9376f11ae3032dba2d665"
else
@@ -247,6 +275,8 @@ elif [ "${shortname}" == "vints" ]; then
elif [ "${shortname}" == "ut99" ]; then
fn_install_server_files
update_ut99.sh
+elif [ "${shortname}" == "xnt" ]; then
+ update_xnt.sh
elif [ -z "${appid}" ] || [ "${shortname}" == "ahl" ] || [ "${shortname}" == "bb" ] || [ "${shortname}" == "q4" ] || [ "${shortname}" == "ns" ] || [ "${shortname}" == "sfc" ] || [ "${shortname}" == "ts" ] || [ "${shortname}" == "vs" ] || [ "${shortname}" == "zmr" ]; then
if [ "${shortname}" == "ut" ]; then
install_eula.sh
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
new file mode 100644
index 000000000..d935e3989
--- /dev/null
+++ b/lgsm/modules/update_xnt.sh
@@ -0,0 +1,173 @@
+#!/bin/bash
+# LinuxGSM command_ut99.sh module
+# Author: Daniel Gibbs
+# Contributors: http://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Handles updating of Unreal Tournament 99 servers.
+
+module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
+fn_update_dl() {
+ # Download and extract files to serverfiles.
+ fn_fetch_file "${remotebuildurl}" "" "" "" "${tmpdir}" "${remotebuildfilename}" "nochmodx" "norun" "force" "${remotebuildhash}"
+ fn_dl_extract "${tmpdir}" "${remotebuildfilename}" "${serverfiles}" "Xonotic"
+ fn_clear_tmp
+}
+
+fn_update_localbuild() {
+ # Gets local build info.
+ fn_print_dots "Checking local build: ${remotelocation}"
+
+ # Send version command to Xonotic server.
+ tmux -L "${socketname}" send-keys -t "${sessionname}" "version\r" > /dev/null 2>&1
+ fn_sleep_time_1
+
+ # Uses log file to get local build.
+ localbuild=$(grep "SVQC version: xonotic-v" "${consolelogdir}"/* 2> /dev/null | tail -1 | sed 's/.*SVQC version: \(xonotic-v[0-9.]*\).*/\1/' | tr -d '\000-\011\013-\037')
+ if [ -z "${localbuild}" ]; then
+ fn_print_error "Checking local build: ${remotelocation}: missing local build info"
+ fn_script_log_error "Missing local build info"
+ fn_script_log_error "Set localbuild to 0"
+ localbuild="0"
+ else
+ fn_print_ok "Checking local build: ${remotelocation}"
+ fn_script_log_pass "Checking local build"
+ fi
+}
+
+fn_update_remotebuild() {
+ # Get remote build info.
+ apiurl="https://api.github.com/repos/xonotic/xonotic/tags"
+ remotebuildresponse=$(curl -s "${apiurl}")
+ remotebuildtag=$(echo "${remotebuildresponse}" | jq -r '.[0].name')
+ remotebuildfilename=$(echo "${remotebuildtag}" | tr -d 'v')
+ remotebuildfilename="${remotebuildfilename}.zip"
+ remotebuildurl="https://dl.xonotic.org/${remotebuildfilename}"
+
+ remotebuildversion="${remotebuildtag}"
+
+ if [ "${firstcommandname}" != "INSTALL" ]; then
+ fn_print_dots "Checking remote build: ${remotelocation}"
+ # Checks if remotebuildversion variable has been set.
+ if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
+ fn_print_fail "Checking remote build: ${remotelocation}"
+ fn_script_log_fail "Checking remote build"
+ core_exit.sh
+ else
+ fn_print_ok "Checking remote build: ${remotelocation}"
+ fn_script_log_pass "Checking remote build"
+ fi
+ else
+ # Checks if remotebuild variable has been set.
+ if [ -z "${remotebuildversion}" ] || [ "${remotebuildversion}" == "null" ]; then
+ fn_print_failure "Unable to get remote build"
+ fn_script_log_fail "Unable to get remote build"
+ core_exit.sh
+ fi
+ fi
+}
+
+fn_update_compare() {
+ fn_print_dots "Checking for update: ${remotelocation}"
+ # Update has been found or force update.
+ if [ "${localbuild}" != "${remotebuildversion}" ] || [ "${forceupdate}" == "1" ]; then
+ # Create update lockfile.
+ date '+%s' > "${lockdir:?}/update.lock"
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "Update available"
+ echo -e "* Local build: ${red}${localbuild}${default}"
+ echo -e "* Remote build: ${green}${remotebuildversion}${default}"
+ if [ -n "${branch}" ]; then
+ echo -e "* Branch: ${branch}"
+ fi
+ if [ -f "${rootdir}/.dev-debug" ]; then
+ echo -e "Remote build info"
+ echo -e "* apiurl: ${apiurl}"
+ echo -e "* remotebuildfilename: ${remotebuildfilename}"
+ echo -e "* remotebuildurl: ${remotebuildurl}"
+ echo -e "* remotebuildversion: ${remotebuildversion}"
+ fi
+ echo -en "\n"
+ fn_script_log_info "Update available"
+ fn_script_log_info "Local build: ${localbuild}"
+ fn_script_log_info "Remote build: ${remotebuildversion}"
+ if [ -n "${branch}" ]; then
+ fn_script_log_info "Branch: ${branch}"
+ fi
+ fn_script_log_info "${localbuild} > ${remotebuildversion}"
+
+ if [ "${commandname}" == "UPDATE" ]; then
+ date +%s > "${lockdir}/last-updated.lock"
+ unset updateonstart
+ check_status.sh
+ # If server stopped.
+ if [ "${status}" == "0" ]; then
+ fn_update_dl
+ if [ "${localbuild}" == "0" ]; then
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_sleep_time_5
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
+ # If server started.
+ else
+ fn_print_restart_warning
+ exitbypass=1
+ command_stop.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_update_dl
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ fi
+ unset exitbypass
+ alert="update"
+ elif [ "${commandname}" == "CHECK-UPDATE" ]; then
+ alert="check-update"
+ fi
+ alert.sh
+ else
+ fn_print_ok_nl "Checking for update: ${remotelocation}"
+ echo -en "\n"
+ echo -e "No update available"
+ echo -e "* Local build: ${green}${localbuild}${default}"
+ echo -e "* Remote build: ${green}${remotebuildversion}${default}"
+ if [ -n "${branch}" ]; then
+ echo -e "* Branch: ${branch}"
+ fi
+ echo -en "\n"
+ fn_script_log_info "No update available"
+ fn_script_log_info "Local build: ${localbuild}"
+ fn_script_log_info "Remote build: ${remotebuildversion}"
+ if [ -n "${branch}" ]; then
+ fn_script_log_info "Branch: ${branch}"
+ fi
+ if [ -f "${rootdir}/.dev-debug" ]; then
+ echo -e "Remote build info"
+ echo -e "* apiurl: ${apiurl}"
+ echo -e "* remotebuildfilename: ${remotebuildfilename}"
+ echo -e "* remotebuildurl: ${remotebuildurl}"
+ echo -e "* remotebuildversion: ${remotebuildversion}"
+ fi
+ fi
+}
+
+# The location where the builds are checked and downloaded.
+remotelocation="github.com"
+
+if [ "${firstcommandname}" == "INSTALL" ]; then
+ fn_update_remotebuild
+ fn_update_dl
+else
+ fn_print_dots "Checking for update"
+ fn_print_dots "Checking for update: ${remotelocation}"
+ fn_script_log_info "Checking for update: ${remotelocation}"
+ fn_update_localbuild
+ fn_update_remotebuild
+ fn_update_compare
+fi
From b4299ef1667318d05171a9a66aed2b232ca98d13 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 29 Aug 2024 14:45:49 +0100
Subject: [PATCH 056/154] feat: delete download of tar files when installed
(#4458)
this will clear the tmp directory when a server it downloaded
---
lgsm/modules/install_server_files.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index 57ce58ca7..7d773ce9f 100644
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -238,6 +238,7 @@ fn_install_server_files() {
fi
fn_fetch_file "${remote_fileurl}" "" "" "" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${md5}"
fn_dl_extract "${local_filedir}" "${local_filename}" "${serverfiles}"
+ fn_clear_tmp
}
echo -e ""
From 02223a5206da02d69b19f5d27f8a1bde70191810 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 29 Aug 2024 21:22:25 +0100
Subject: [PATCH 057/154] fix(restart): prevent restart from running if checks
fail (4278)
---
lgsm/modules/command_restart.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/lgsm/modules/command_restart.sh b/lgsm/modules/command_restart.sh
index ed60a5555..457d1d17f 100644
--- a/lgsm/modules/command_restart.sh
+++ b/lgsm/modules/command_restart.sh
@@ -10,6 +10,7 @@ commandaction="Restarting"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
+check.sh
info_game.sh
exitbypass=1
command_stop.sh
From d9d82a1a1230fb096dff5f1b0609bde397aa1806 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 1 Sep 2024 22:07:58 +0100
Subject: [PATCH 058/154] feat(permissions): Attempt to fix non executable
files issue
---
lgsm/modules/check_permissions.sh | 24 ++++++++++++++++++++----
1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index d2cd5890c..44c527bfb 100644
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -71,11 +71,27 @@ fn_check_permissions() {
echo -en "File:"
echo -en "${findnotexecutable}"
} | column -s $'\t' -t | tee -a "${lgsmlog}"
- if [ "${monitorflag}" == 1 ]; then
- alert="permissions"
- alert.sh
+
+ # Attempt to make the files executable
+ fn_print_information_nl "Attempting to fix permissions issues"
+ fn_script_log_info "Attempting to fix permissions issues"
+ echo "${findnotexecutable}" | xargs chmod +x
+
+ # Re-check if there are still non-executable files
+ findnotexecutable="$(find "${modulesdir}" -type f -not -executable)"
+ findnotexecutablewc="$(find "${modulesdir}" -type f -not -executable | wc -l)"
+ if [ "${findnotexecutablewc}" -ne "0" ]; then
+ fn_print_fail_nl "Failed to resolve permissions issues"
+ fn_script_log_fail "Failed to resolve permissions issues"
+ if [ "${monitorflag}" == 1 ]; then
+ alert="permissions"
+ alert.sh
+ fi
+ core_exit.sh
+ else
+ fn_print_ok_nl "Permissions issues resolved"
+ fn_script_log_pass "Permissions issues resolved"
fi
- core_exit.sh
fi
fi
From d14252017db994494ed6e594503b0f5229fa8df5 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 10 Sep 2024 21:04:11 +0100
Subject: [PATCH 059/154] fix(sf): Update Satisfactory executable (#4643)
change: remove MultiHome Parameter for sfserver
removed temporary fix with sf 1 release
Co-authored-by: Armin <50357737+PlayMTL@users.noreply.github.com>
---
lgsm/config-default/config-lgsm/sfserver/_default.cfg | 4 ++--
lgsm/modules/check_executable.sh | 7 -------
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/sfserver/_default.cfg b/lgsm/config-default/config-lgsm/sfserver/_default.cfg
index 65930bfc1..d6ce41d82 100644
--- a/lgsm/config-default/config-lgsm/sfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sfserver/_default.cfg
@@ -16,7 +16,7 @@ port="7777"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
## Game Server Docs | https://satisfactory.fandom.com/wiki/Dedicated_servers
-startparameters="FactoryGame -MultiHome=${ip} -Port=${port} -ServerQueryPort=${queryport} -BeaconPort=${beaconport} -log"
+startparameters="FactoryGame -Port=${port} -ServerQueryPort=${queryport} -BeaconPort=${beaconport} -log"
#### LinuxGSM Settings ####
@@ -159,7 +159,7 @@ glibc="2.17"
## Game Server Directories
systemdir="${serverfiles}/FactoryGame"
executabledir="${serverfiles}/Engine/Binaries/Linux"
-executable="./UnrealServer-Linux-Shipping"
+executable="./FactoryServer-Linux-Shipping"
servercfgdir="${systemdir}/Saved/Config/LinuxServer"
servercfg="GameUserSettings.ini"
servercfgdefault="GameUserSettings.ini"
diff --git a/lgsm/modules/check_executable.sh b/lgsm/modules/check_executable.sh
index 91db68f1a..e7214ac33 100644
--- a/lgsm/modules/check_executable.sh
+++ b/lgsm/modules/check_executable.sh
@@ -7,13 +7,6 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-# #4241 temporary fix for Satisfactory for upgrade betweern Update 7 & Update 8 - remove this once update 8 is released
-if [ "${shortname}" == "sf" ]; then
- if [ ! -f "${serverfiles}/Engine/Binaries/Linux/UE4Server-Linux-Shipping" ]; then
- ln -s "${serverfiles}/Engine/Binaries/Linux/UnrealServer-Linux-Shipping" "${serverfiles}/Engine/Binaries/Linux/UE4Server-Linux-Shipping"
- fi
-fi
-
# Check if executable exists
execname=$(basename "${executable}")
if [ ! -f "${executabledir}/${execname}" ]; then
From 0729d39ab887426c1a7d83ee544b3716e5971ec4 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 10 Sep 2024 21:07:29 +0100
Subject: [PATCH 060/154] Release v24.2.4
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index dbcec4f6f..a56a88eea 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.2.3"
+modulesversion="v24.2.4"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index eafb87406..4226415b6 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.2.3"
+version="v24.2.4"
shortname="core"
gameservername="core"
commandname="CORE"
From ee8d30f7060818ad430ac9e4b30e1d61369a5d21 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 16 Sep 2024 22:43:44 +0100
Subject: [PATCH 061/154] feat(ro): Migrate to using valve query by default
---
.../config-lgsm/roserver/_default.cfg | 2 +-
.../modules/command_dev_parse_game_details.sh | 8 ++---
lgsm/modules/core_messages.sh | 2 +-
lgsm/modules/info_game.sh | 36 +++++++++----------
lgsm/modules/info_messages.sh | 19 +++++-----
5 files changed, 33 insertions(+), 34 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/roserver/_default.cfg b/lgsm/config-default/config-lgsm/roserver/_default.cfg
index c000f6181..0af49a0d4 100644
--- a/lgsm/config-default/config-lgsm/roserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/roserver/_default.cfg
@@ -142,7 +142,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="protocol-unreal2"
+querytype="protocol-valve"
## Console type
consoleverbose="yes"
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
index 2e22aa7ae..5938f817d 100644
--- a/lgsm/modules/command_dev_parse_game_details.sh
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -74,12 +74,12 @@ declare -A server_details=(
['Port IPv6']="${portipv6}"
['Port']="${port}"
['Query Enabled']="${queryenabled}"
- ['Query HTTP Port']="${queryhttpport}"
- ['Query HTTPS Port']="${queryhttpsport}"
+ ['Query HTTP Port']="${httpqueryport}"
+ ['Query HTTPS Port']="${httpsqueryport}"
['Query Mode']="${querymode}"
- ['Query Port GS']="${queryportgs}"
+ ['Query Port GS']="${gamespyqueryport}"
['Query Port']="${queryport}"
- ['Query SSH Port']="${querysshport}"
+ ['Query SSH Port']="${sshqueryport}"
['Queue Enabled']="${queueenabled}"
['Queue Port']="${queueport}"
['Random Map']="${randommap}"
diff --git a/lgsm/modules/core_messages.sh b/lgsm/modules/core_messages.sh
index 6488c02bc..52129dc4b 100644
--- a/lgsm/modules/core_messages.sh
+++ b/lgsm/modules/core_messages.sh
@@ -31,7 +31,7 @@ fn_ansi_loader() {
darkgrey="\e[90m"
lightgrey="\e[37m"
white="\e[97m"
- # erase to end of line.
+ # erase to end of line.
creeol+="\033[K"
fi
}
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index d56d4fbff..5875627ca 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -496,7 +496,7 @@ fn_info_game_kf() {
fn_info_game_ini "lanport" "LANServerPort"
fn_info_game_ini "maxplayers" "MaxPlayers"
fn_info_game_ini "port" "Port"
- fn_info_game_ini "queryportgs" "QueryPort"
+ fn_info_game_ini "gamespyqueryport" "QueryPort"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fi
@@ -510,7 +510,7 @@ fn_info_game_kf() {
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
queryport="$((port + 1))"
- queryportgs="${queryportgs:-"0"}"
+ gamespyqueryport="${gamespyqueryport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
steamport="28852"
@@ -754,19 +754,19 @@ fn_info_game_ts3() {
fn_info_game_ini "dbplugin" "dbplugin"
fn_info_game_ini "fileport" "filetransfer_port"
fn_info_game_ini "port" "default_voice_port"
- fn_info_game_ini "queryhttpport" "query_http_port"
- fn_info_game_ini "queryhttpsport" "query_https_port"
+ fn_info_game_ini "httpqueryport" "query_http_port"
+ fn_info_game_ini "httpsqueryport" "query_https_port"
fn_info_game_ini "queryport" "query_port"
- fn_info_game_ini "querysshport" "query_ssh_port"
+ fn_info_game_ini "sshqueryport" "query_ssh_port"
fi
configip="${configip:-"0.0.0.0"}"
dbplugin="${dbplugin:-"NOT SET"}"
fileport="${fileport:-"0"}"
port="${port:-"0"}"
- queryhttpport="${queryhttpport:-"0"}"
- queryhttpsport="${queryhttpsport:-"0"}"
+ httpqueryport="${httpqueryport:-"0"}"
+ httpsqueryport="${httpsqueryport:-"0"}"
queryport="${queryport:-"0"}"
- querysshport="${querysshport:-"0"}"
+ sshqueryport="${sshqueryport:-"0"}"
telnetport="${queryport}"
}
@@ -797,7 +797,7 @@ fn_info_game_ut99() {
fn_info_game_ini "adminpassword" "AdminPassword"
fn_info_game_ini "beaconport" "ServerBeaconPort"
fn_info_game_ini "port" "Port"
- fn_info_game_ini "queryportgs" "OldQueryPortNumber"
+ fn_info_game_ini "gamespyqueryport" "OldQueryPortNumber"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fn_info_game_ini "httpenabled" "bEnabled"
@@ -811,7 +811,7 @@ fn_info_game_ut99() {
httpport="${httpport:-"0"}"
port="${port:-"0"}"
queryport="$((port + 1))"
- queryportgs="${queryportgs:-"0"}"
+ gamespyqueryport="${gamespyqueryport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
httpenabled="${httpenabled:-"0"}"
@@ -857,7 +857,7 @@ fn_info_game_unreal2() {
fn_info_game_ini "adminpassword" "AdminPassword"
fn_info_game_ini "httpport" "ListenPort"
fn_info_game_ini "port" "Port"
- fn_info_game_ini "queryportgs" "OldQueryPortNumber"
+ fn_info_game_ini "gamespyqueryport" "OldQueryPortNumber"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fn_info_game_ini "httpenabled" "bEnabled"
@@ -868,7 +868,7 @@ fn_info_game_unreal2() {
httpport="${httpport:-"0"}"
port="${port:-"0"}"
queryport="$((port + 1))"
- queryportgs="${queryportgs:-"0"}"
+ gamespyqueryport="${gamespyqueryport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
httpenabled="${httpenabled:-"0"}"
@@ -902,7 +902,7 @@ fn_info_game_ut2k4() {
fn_info_game_ini "httpport" "ListenPort"
fn_info_game_ini "lanport" "LANServerPort"
fn_info_game_ini "port" "Port"
- fn_info_game_ini "queryportgs" "OldQueryPortNumber"
+ fn_info_game_ini "gamespyqueryport" "OldQueryPortNumber"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fn_info_game_ini "httpenabled" "bEnabled"
@@ -914,7 +914,7 @@ fn_info_game_ut2k4() {
lanport="${lanport:-"0"}"
port="${port:-"0"}"
queryport="$((port + 1))"
- queryportgs="${queryportgs:-"0"}"
+ gamespyqueryport="${gamespyqueryport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
httpenabled="${httpenabled:-"0"}"
@@ -1771,7 +1771,6 @@ fn_info_game_ro() {
fn_info_game_ini "lanport" "LANServerPort"
fn_info_game_ini "maxplayers" "MaxPlayers"
fn_info_game_ini "port" "Port"
- fn_info_game_ini "queryportgs" "QueryPort"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fi
@@ -1784,12 +1783,11 @@ fn_info_game_ro() {
lanport="${lanport:-"0"}"
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
- queryport="$((port + 1))"
- queryportgs="${queryportgs:-"0"}"
+ queryport=$((28902 + (port - 7757))) # Valve Query Port
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
- steamport="28902"
- steamworksport="20610"
+ steamport="20610"
+ unreal2queryport="$((port + 1))" # Unreal2 Query Port
}
# Config Type: QuakeC
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 0bc444e5e..94c192361 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -832,7 +832,7 @@ fn_info_messages_armar() {
{
fn_port "header"
fn_port "Game" port udp
- fn_port "Steam Query" queryport udp
+ fn_port "Query" queryport udp
fn_port "BattleEye" battleeyeport tcp
} | column -s $'\t' -t
}
@@ -1130,7 +1130,7 @@ fn_info_messages_kf() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
- fn_port "Query (GameSpy)" queryportgs udp
+ fn_port "Query (GameSpy)" gamespyqueryport udp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
fn_port "Steamworks P2P" steamworksport udp
@@ -1343,11 +1343,12 @@ fn_info_messages_ro() {
{
fn_port "header"
fn_port "Game" port udp
- fn_port "Query" queryport udp
+ fn_port "Query - Steam" queryport udp
+ fn_port "Query - Unreal 2" unreal2queryport udp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
- fn_port "Steamworks P2P" steamworksport udp
fn_port "Steam" steamport udp
+
} | column -s $'\t' -t
echo -e ""
echo -e "${bold}${lightgreen}${servername} Web Interface${default}"
@@ -1504,7 +1505,7 @@ fn_info_messages_source() {
fn_port "Query" queryport tcp
fn_port "RCON" rconport tcp
fn_port "SourceTV" sourcetvport udp
- # Will not show if unaviable
+ # Will not show if unavailable
if [ "${steamport}" == "0" ] || [ -v "${steamport}" ]; then
fn_port "Steam" steamport udp
fi
@@ -1570,9 +1571,9 @@ fn_info_messages_ts3() {
fn_port "header"
fn_port "Voice" port udp
fn_port "Query" queryport tcp
- fn_port "Query (SSH)" querysshport tcp
- fn_port "Query (http)" queryhttpport tcp
- fn_port "Query (https)" queryhttpsport tcp
+ fn_port "Query (SSH)" sshqueryport tcp
+ fn_port "Query (http)" httpqueryport tcp
+ fn_port "Query (https)" httpsqueryport tcp
fn_port "File Transfer" fileport tcp
fn_port "Telnet" telnetport tcp
} | column -s $'\t' -t
@@ -1618,7 +1619,7 @@ fn_info_messages_ut2k4() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
- fn_port "Query (GameSpy)" queryportgs udp
+ fn_port "Query (GameSpy)" gamespyqueryport udp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
} | column -s $'\t' -t
From 8032eca4b1ea17fb40efb7ada9617eafb4a5fd15 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 21 Sep 2024 23:22:07 +0100
Subject: [PATCH 062/154] feat(kf): Migrate to using valve query
---
.../config-lgsm/kfserver/_default.cfg | 2 +-
lgsm/modules/info_game.sh | 15 ++++++++++-----
lgsm/modules/info_messages.sh | 6 +++---
3 files changed, 14 insertions(+), 9 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/kfserver/_default.cfg b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
index d9df57d3e..222ba9979 100644
--- a/lgsm/config-default/config-lgsm/kfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/kfserver/_default.cfg
@@ -146,7 +146,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="protocol-unreal2"
+querytype="protocol-valve"
## Console type
consoleverbose="yes"
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 5875627ca..8496f078f 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -496,12 +496,13 @@ fn_info_game_kf() {
fn_info_game_ini "lanport" "LANServerPort"
fn_info_game_ini "maxplayers" "MaxPlayers"
fn_info_game_ini "port" "Port"
- fn_info_game_ini "gamespyqueryport" "QueryPort"
+ fn_info_game_ini "gamespyqueryport" "OldQueryPortNumber"
fn_info_game_ini "servername" "ServerName"
fn_info_game_ini "serverpassword" "GamePassword"
fi
adminpassword="${adminpassword:-"NOT SET"}"
defaultmap="${defaultmap:-"NOT SET"}"
+ gamespyqueryport="${gamespyqueryport:-"0"}" # Gamespy Query Port
httpenabled="${httpenabled:-"NOT SET"}"
httppassword="${adminpassword}"
httpport="${httpport:-"0"}"
@@ -509,12 +510,11 @@ fn_info_game_kf() {
lanport="${lanport:-"0"}"
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
- queryport="$((port + 1))"
- gamespyqueryport="${gamespyqueryport:-"0"}"
+ queryport=$((28902 + (port - 7757))) # Valve Query Port
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
- steamport="28852"
- steamworksport="20560"
+ steamport="20610"
+ unreal2queryport="$((port + 1))" # Unreal2 Query Port
}
# Config Type: ini
@@ -1761,6 +1761,11 @@ fn_info_game_qw() {
servername="${servername:-"NOT SET"}"
}
+# Config Type: ini
+# Parameters: true
+# Comment: ; or #
+# Example: ServerName=SERVERNAME
+# Filetype: ini
fn_info_game_ro() {
if [ -f "${servercfgfullpath}" ]; then
fn_info_game_ini "adminpassword" "AdminPassword"
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 94c192361..b3fb5f47d 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1129,11 +1129,11 @@ fn_info_messages_kf() {
{
fn_port "header"
fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Query (GameSpy)" gamespyqueryport udp
+ fn_port "Query - Steam" queryport udp
+ fn_port "Query - Unreal 2" unreal2queryport udp
+ fn_port "Query - Gamespy" gamespyqueryport udp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
- fn_port "Steamworks P2P" steamworksport udp
fn_port "Steam" steamport udp
} | column -s $'\t' -t
echo -e ""
From 93ecefbc42a81b9902ccfa8e66d3a6941d03c66d Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 21 Sep 2024 23:35:34 +0100
Subject: [PATCH 063/154] feat(ut2k4): Update details to match other unreal 2
servers
---
lgsm/modules/info_messages.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index b3fb5f47d..7f40c8312 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1618,8 +1618,8 @@ fn_info_messages_ut2k4() {
{
fn_port "header"
fn_port "Game" port udp
- fn_port "Query" queryport udp
- fn_port "Query (GameSpy)" gamespyqueryport udp
+ fn_port "Query - Unreal 2" queryport udp
+ fn_port "Query - Gamespy" gamespyqueryport udp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
} | column -s $'\t' -t
From fdde2de54a0ab8ebe1cbcf31d99122376414c1fd Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 10:41:30 +0100
Subject: [PATCH 064/154] chore: update distro versions
---
.github/ISSUE_TEMPLATE/bug_report.yml | 6 +-----
.github/ISSUE_TEMPLATE/feature_request.yml | 6 +-----
2 files changed, 2 insertions(+), 10 deletions(-)
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index 2b339d122..e9f2d000b 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -30,17 +30,13 @@ body:
label: Linux distro
multiple: true
options:
+ - Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
- - Ubuntu 18.04
- - Ubuntu 16.04
- Debian 12
- Debian 11
- - Debian 10
- - Debian 9
- RedHat 9
- RedHat 8
- - RedHat 7
- Other
validations:
required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
index 45aced3d1..f1a8ccaf6 100644
--- a/.github/ISSUE_TEMPLATE/feature_request.yml
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -30,17 +30,13 @@ body:
label: Linux distro
multiple: true
options:
+ - Ubuntu 24.04
- Ubuntu 22.04
- Ubuntu 20.04
- - Ubuntu 18.04
- - Ubuntu 16.04
- Debian 12
- Debian 11
- - Debian 10
- - Debian 9
- RedHat 9
- RedHat 8
- - RedHat 7
- Other
validations:
required: false
From f5369ca901ac68df8d32e51d2b256a9744e36750 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 10:44:41 +0100
Subject: [PATCH 065/154] fix: Change http to https in comment
---
lgsm/modules/alert.sh | 2 +-
lgsm/modules/alert_discord.sh | 2 +-
lgsm/modules/alert_email.sh | 2 +-
lgsm/modules/alert_gotify.sh | 2 +-
lgsm/modules/alert_ifttt.sh | 2 +-
lgsm/modules/alert_pushbullet.sh | 2 +-
lgsm/modules/alert_pushover.sh | 2 +-
lgsm/modules/alert_rocketchat.sh | 2 +-
lgsm/modules/alert_slack.sh | 2 +-
lgsm/modules/alert_telegram.sh | 2 +-
lgsm/modules/check.sh | 2 +-
lgsm/modules/check_config.sh | 2 +-
lgsm/modules/check_deps.sh | 2 +-
lgsm/modules/check_executable.sh | 2 +-
lgsm/modules/check_gamedig.sh | 2 +-
lgsm/modules/check_glibc.sh | 2 +-
lgsm/modules/check_ip.sh | 2 +-
lgsm/modules/check_last_update.sh | 2 +-
lgsm/modules/check_logs.sh | 2 +-
lgsm/modules/check_permissions.sh | 2 +-
lgsm/modules/check_root.sh | 2 +-
lgsm/modules/check_status.sh | 2 +-
lgsm/modules/check_steamcmd.sh | 2 +-
lgsm/modules/check_system_dir.sh | 2 +-
lgsm/modules/check_system_requirements.sh | 2 +-
lgsm/modules/check_tmuxception.sh | 2 +-
lgsm/modules/check_version.sh | 2 +-
lgsm/modules/command_backup.sh | 2 +-
lgsm/modules/command_check_update.sh | 2 +-
lgsm/modules/command_console.sh | 2 +-
lgsm/modules/command_debug.sh | 2 +-
lgsm/modules/command_details.sh | 2 +-
lgsm/modules/command_dev_clear_modules.sh | 2 +-
lgsm/modules/command_dev_debug.sh | 2 +-
lgsm/modules/command_dev_detect_deps.sh | 2 +-
lgsm/modules/command_dev_detect_glibc.sh | 2 +-
lgsm/modules/command_dev_detect_ldd.sh | 2 +-
.../command_dev_parse_distro_details.sh | 20 +++++++++----------
.../modules/command_dev_parse_game_details.sh | 2 +-
lgsm/modules/command_dev_query_raw.sh | 2 +-
lgsm/modules/command_fastdl.sh | 2 +-
lgsm/modules/command_install.sh | 2 +-
lgsm/modules/command_install_resources_mta.sh | 2 +-
lgsm/modules/command_mods_install.sh | 2 +-
lgsm/modules/command_mods_remove.sh | 2 +-
lgsm/modules/command_mods_update.sh | 2 +-
lgsm/modules/command_monitor.sh | 2 +-
lgsm/modules/command_postdetails.sh | 2 +-
lgsm/modules/command_restart.sh | 2 +-
lgsm/modules/command_send.sh | 2 +-
lgsm/modules/command_skeleton.sh | 2 +-
lgsm/modules/command_sponsor.sh | 2 +-
lgsm/modules/command_start.sh | 2 +-
lgsm/modules/command_stop.sh | 2 +-
lgsm/modules/command_test_alert.sh | 2 +-
lgsm/modules/command_ts3_server_pass.sh | 2 +-
lgsm/modules/command_update.sh | 2 +-
lgsm/modules/command_update_linuxgsm.sh | 2 +-
lgsm/modules/command_validate.sh | 2 +-
lgsm/modules/command_wipe.sh | 2 +-
lgsm/modules/compress_unreal2_maps.sh | 2 +-
lgsm/modules/compress_ut99_maps.sh | 2 +-
lgsm/modules/core_dl.sh | 2 +-
lgsm/modules/core_exit.sh | 2 +-
lgsm/modules/core_getopt.sh | 2 +-
lgsm/modules/core_github.sh | 2 +-
lgsm/modules/core_legacy.sh | 2 +-
lgsm/modules/core_logs.sh | 2 +-
lgsm/modules/core_messages.sh | 2 +-
lgsm/modules/core_modules.sh | 2 +-
lgsm/modules/core_steamcmd.sh | 2 +-
lgsm/modules/core_trap.sh | 2 +-
lgsm/modules/fix.sh | 2 +-
lgsm/modules/fix_ark.sh | 2 +-
lgsm/modules/fix_arma3.sh | 2 +-
lgsm/modules/fix_armar.sh | 2 +-
lgsm/modules/fix_av.sh | 2 +-
lgsm/modules/fix_bo.sh | 2 +-
lgsm/modules/fix_bt.sh | 2 +-
lgsm/modules/fix_cmw.sh | 2 +-
lgsm/modules/fix_csgo.sh | 2 +-
lgsm/modules/fix_dst.sh | 2 +-
lgsm/modules/fix_hw.sh | 2 +-
lgsm/modules/fix_ins.sh | 2 +-
lgsm/modules/fix_kf.sh | 2 +-
lgsm/modules/fix_kf2.sh | 2 +-
lgsm/modules/fix_mcb.sh | 2 +-
lgsm/modules/fix_mta.sh | 2 +-
lgsm/modules/fix_nmrih.sh | 2 +-
lgsm/modules/fix_onset.sh | 2 +-
lgsm/modules/fix_pvr.sh | 2 +-
lgsm/modules/fix_ro.sh | 2 +-
lgsm/modules/fix_rust.sh | 2 +-
lgsm/modules/fix_rw.sh | 2 +-
lgsm/modules/fix_samp.sh | 2 +-
lgsm/modules/fix_sdtd.sh | 2 +-
lgsm/modules/fix_sfc.sh | 2 +-
lgsm/modules/fix_sm.sh | 2 +-
lgsm/modules/fix_sof2.sh | 2 +-
lgsm/modules/fix_squad.sh | 2 +-
lgsm/modules/fix_st.sh | 2 +-
lgsm/modules/fix_steamcmd.sh | 2 +-
lgsm/modules/fix_terraria.sh | 2 +-
lgsm/modules/fix_tf2.sh | 2 +-
lgsm/modules/fix_ts3.sh | 2 +-
lgsm/modules/fix_unt.sh | 2 +-
lgsm/modules/fix_ut.sh | 2 +-
lgsm/modules/fix_ut2k4.sh | 2 +-
lgsm/modules/fix_ut3.sh | 2 +-
lgsm/modules/fix_wurm.sh | 2 +-
lgsm/modules/fix_xnt.sh | 2 +-
lgsm/modules/fix_zmr.sh | 2 +-
lgsm/modules/info_distro.sh | 6 +++---
lgsm/modules/info_game.sh | 2 +-
lgsm/modules/info_messages.sh | 2 +-
lgsm/modules/info_stats.sh | 2 +-
lgsm/modules/install_complete.sh | 2 +-
lgsm/modules/install_config.sh | 2 +-
lgsm/modules/install_dst_token.sh | 2 +-
lgsm/modules/install_eula.sh | 2 +-
lgsm/modules/install_factorio_save.sh | 2 +-
lgsm/modules/install_gslt.sh | 2 +-
lgsm/modules/install_header.sh | 2 +-
lgsm/modules/install_logs.sh | 2 +-
lgsm/modules/install_mta_resources.sh | 2 +-
lgsm/modules/install_retry.sh | 2 +-
lgsm/modules/install_server_dir.sh | 2 +-
lgsm/modules/install_server_files.sh | 2 +-
lgsm/modules/install_squad_license.sh | 2 +-
lgsm/modules/install_stats.sh | 2 +-
lgsm/modules/install_steamcmd.sh | 2 +-
lgsm/modules/install_ts3db.sh | 2 +-
lgsm/modules/install_ut2k4_key.sh | 2 +-
lgsm/modules/mods_core.sh | 2 +-
lgsm/modules/mods_list.sh | 2 +-
lgsm/modules/query_gamedig.sh | 2 +-
lgsm/modules/query_gsquery.py | 2 +-
lgsm/modules/update_fctr.sh | 2 +-
lgsm/modules/update_jk2.sh | 2 +-
lgsm/modules/update_mc.sh | 2 +-
lgsm/modules/update_mcb.sh | 2 +-
lgsm/modules/update_mta.sh | 2 +-
lgsm/modules/update_pmc.sh | 2 +-
lgsm/modules/update_steamcmd.sh | 2 +-
lgsm/modules/update_ts3.sh | 2 +-
lgsm/modules/update_ut99.sh | 2 +-
lgsm/modules/update_vints.sh | 2 +-
lgsm/modules/update_xnt.sh | 2 +-
148 files changed, 159 insertions(+), 159 deletions(-)
diff --git a/lgsm/modules/alert.sh b/lgsm/modules/alert.sh
index 40288d234..f2698e3b7 100644
--- a/lgsm/modules/alert.sh
+++ b/lgsm/modules/alert.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Overall module for managing alerts.
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index c98bef765..a447c498a 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_discord.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Discord alert.
diff --git a/lgsm/modules/alert_email.sh b/lgsm/modules/alert_email.sh
index 6833d9670..ca9db1bc4 100644
--- a/lgsm/modules/alert_email.sh
+++ b/lgsm/modules/alert_email.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_email.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends email alert.
diff --git a/lgsm/modules/alert_gotify.sh b/lgsm/modules/alert_gotify.sh
index 8f1d31e91..724ff1d79 100644
--- a/lgsm/modules/alert_gotify.sh
+++ b/lgsm/modules/alert_gotify.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_gotify.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Gotify alert.
diff --git a/lgsm/modules/alert_ifttt.sh b/lgsm/modules/alert_ifttt.sh
index cbd740ec5..ca1c005d0 100644
--- a/lgsm/modules/alert_ifttt.sh
+++ b/lgsm/modules/alert_ifttt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_ifttt.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends IFTTT alert.
diff --git a/lgsm/modules/alert_pushbullet.sh b/lgsm/modules/alert_pushbullet.sh
index 5ed3853f6..4b96a1f9f 100644
--- a/lgsm/modules/alert_pushbullet.sh
+++ b/lgsm/modules/alert_pushbullet.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_pushbullet.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Pushbullet Messenger alert.
diff --git a/lgsm/modules/alert_pushover.sh b/lgsm/modules/alert_pushover.sh
index 22180d503..dc488026a 100644
--- a/lgsm/modules/alert_pushover.sh
+++ b/lgsm/modules/alert_pushover.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_pushover.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Pushover alert.
diff --git a/lgsm/modules/alert_rocketchat.sh b/lgsm/modules/alert_rocketchat.sh
index 910722804..bff2c6a0b 100644
--- a/lgsm/modules/alert_rocketchat.sh
+++ b/lgsm/modules/alert_rocketchat.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_rocketchat.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Rocketchat alert.
diff --git a/lgsm/modules/alert_slack.sh b/lgsm/modules/alert_slack.sh
index b74f98dec..58dc54772 100644
--- a/lgsm/modules/alert_slack.sh
+++ b/lgsm/modules/alert_slack.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_slack.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Slack alert.
diff --git a/lgsm/modules/alert_telegram.sh b/lgsm/modules/alert_telegram.sh
index 98e1a980b..2e719dba7 100644
--- a/lgsm/modules/alert_telegram.sh
+++ b/lgsm/modules/alert_telegram.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM alert_telegram.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends Telegram Messenger alert.
diff --git a/lgsm/modules/check.sh b/lgsm/modules/check.sh
index 2a63df3f3..7601898a9 100644
--- a/lgsm/modules/check.sh
+++ b/lgsm/modules/check.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Overall module for managing checks.
# Runs checks that will either halt on or fix an issue.
diff --git a/lgsm/modules/check_config.sh b/lgsm/modules/check_config.sh
index d8bfb5008..24bc1c37f 100644
--- a/lgsm/modules/check_config.sh
+++ b/lgsm/modules/check_config.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_config.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if the server config is missing and warns the user if needed.
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index df5cb9478..35145a11d 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_deps.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks and installs missing dependencies.
diff --git a/lgsm/modules/check_executable.sh b/lgsm/modules/check_executable.sh
index e7214ac33..5959c61aa 100644
--- a/lgsm/modules/check_executable.sh
+++ b/lgsm/modules/check_executable.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_executable.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if server executable exists.
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
index 61149d567..b1913cf87 100644
--- a/lgsm/modules/check_gamedig.sh
+++ b/lgsm/modules/check_gamedig.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_gamedig.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Installs nodejs and gamedig
diff --git a/lgsm/modules/check_glibc.sh b/lgsm/modules/check_glibc.sh
index 9da491bce..8b3d00658 100644
--- a/lgsm/modules/check_glibc.sh
+++ b/lgsm/modules/check_glibc.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_glibc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if the server has the correct Glibc version.
diff --git a/lgsm/modules/check_ip.sh b/lgsm/modules/check_ip.sh
index bf0418f74..8f943c568 100644
--- a/lgsm/modules/check_ip.sh
+++ b/lgsm/modules/check_ip.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_ip.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Automatically identifies the server interface IP.
# If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".
diff --git a/lgsm/modules/check_last_update.sh b/lgsm/modules/check_last_update.sh
index 166d80a17..2686c6507 100644
--- a/lgsm/modules/check_last_update.sh
+++ b/lgsm/modules/check_last_update.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_last_update.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks Lockfile to see when last update happened.
# Will reboot server if instance not rebooted since update.
diff --git a/lgsm/modules/check_logs.sh b/lgsm/modules/check_logs.sh
index 036eea5e4..5e2d66c35 100644
--- a/lgsm/modules/check_logs.sh
+++ b/lgsm/modules/check_logs.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_logs.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if log files exist.
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index 44c527bfb..9ed1bb65e 100644
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_permissions.sh
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks ownership & permissions of scripts, files and directories.
diff --git a/lgsm/modules/check_root.sh b/lgsm/modules/check_root.sh
index 8fe20764c..47825ddc9 100644
--- a/lgsm/modules/check_root.sh
+++ b/lgsm/modules/check_root.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_root.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if the user tried to run the script as root.
diff --git a/lgsm/modules/check_status.sh b/lgsm/modules/check_status.sh
index 906675e81..e017b89ec 100644
--- a/lgsm/modules/check_status.sh
+++ b/lgsm/modules/check_status.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_status.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks the process status of the server. Either online or offline.
diff --git a/lgsm/modules/check_steamcmd.sh b/lgsm/modules/check_steamcmd.sh
index 5d14bb21f..0e7f5ce6c 100644
--- a/lgsm/modules/check_steamcmd.sh
+++ b/lgsm/modules/check_steamcmd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_steamcmd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if SteamCMD is installed correctly.
diff --git a/lgsm/modules/check_system_dir.sh b/lgsm/modules/check_system_dir.sh
index 2f57511fb..2b646835d 100644
--- a/lgsm/modules/check_system_dir.sh
+++ b/lgsm/modules/check_system_dir.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_system_dir.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if systemdir/serverfiles is accessible.
diff --git a/lgsm/modules/check_system_requirements.sh b/lgsm/modules/check_system_requirements.sh
index d25954427..a7314a0d8 100644
--- a/lgsm/modules/check_system_requirements.sh
+++ b/lgsm/modules/check_system_requirements.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_system_requirements.sh
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks RAM requirements.
diff --git a/lgsm/modules/check_tmuxception.sh b/lgsm/modules/check_tmuxception.sh
index 8f1f94c73..fa0748c8b 100644
--- a/lgsm/modules/check_tmuxception.sh
+++ b/lgsm/modules/check_tmuxception.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM check_config.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if run from tmux or screen.
diff --git a/lgsm/modules/check_version.sh b/lgsm/modules/check_version.sh
index 5369fd832..b1e7f5584 100644
--- a/lgsm/modules/check_version.sh
+++ b/lgsm/modules/check_version.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_version.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Will run update-lgsm if gameserver.sh and modules version does not match
# this will allow gameserver.sh to update - useful for multi instance servers.
diff --git a/lgsm/modules/command_backup.sh b/lgsm/modules/command_backup.sh
index a3e1bbe7f..6bbc07f02 100644
--- a/lgsm/modules/command_backup.sh
+++ b/lgsm/modules/command_backup.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_backup.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates a .tar.gz file in the backup directory.
diff --git a/lgsm/modules/command_check_update.sh b/lgsm/modules/command_check_update.sh
index 2e6855f7c..ee4c8ccb3 100644
--- a/lgsm/modules/command_check_update.sh
+++ b/lgsm/modules/command_check_update.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_check_update.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of servers.
diff --git a/lgsm/modules/command_console.sh b/lgsm/modules/command_console.sh
index a5d49d7f2..aa17e839e 100644
--- a/lgsm/modules/command_console.sh
+++ b/lgsm/modules/command_console.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_console.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Gives access to the server tmux console.
diff --git a/lgsm/modules/command_debug.sh b/lgsm/modules/command_debug.sh
index 2e6c0e2e2..b5f2dabac 100644
--- a/lgsm/modules/command_debug.sh
+++ b/lgsm/modules/command_debug.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_debug.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Runs the server without tmux and directly from the terminal.
diff --git a/lgsm/modules/command_details.sh b/lgsm/modules/command_details.sh
index ad55b1241..2800e5123 100644
--- a/lgsm/modules/command_details.sh
+++ b/lgsm/modules/command_details.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_details.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Displays server information.
diff --git a/lgsm/modules/command_dev_clear_modules.sh b/lgsm/modules/command_dev_clear_modules.sh
index bf19b2578..e2e80164f 100644
--- a/lgsm/modules/command_dev_clear_modules.sh
+++ b/lgsm/modules/command_dev_clear_modules.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_clear_modules.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Deletes the contents of the modules dir.
diff --git a/lgsm/modules/command_dev_debug.sh b/lgsm/modules/command_dev_debug.sh
index eb0356985..3226fc186 100644
--- a/lgsm/modules/command_dev_debug.sh
+++ b/lgsm/modules/command_dev_debug.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_debug.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
diff --git a/lgsm/modules/command_dev_detect_deps.sh b/lgsm/modules/command_dev_detect_deps.sh
index 6215fb897..fead2c285 100644
--- a/lgsm/modules/command_dev_detect_deps.sh
+++ b/lgsm/modules/command_dev_detect_deps.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_detect_deps.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Detects dependencies the server binary requires.
diff --git a/lgsm/modules/command_dev_detect_glibc.sh b/lgsm/modules/command_dev_detect_glibc.sh
index 214adc88e..6326cf5cb 100644
--- a/lgsm/modules/command_dev_detect_glibc.sh
+++ b/lgsm/modules/command_dev_detect_glibc.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_detect_glibc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Automatically detects the version of GLIBC that is required.
# Can check a file or directory recursively.
diff --git a/lgsm/modules/command_dev_detect_ldd.sh b/lgsm/modules/command_dev_detect_ldd.sh
index af41bb522..9d0bf5148 100644
--- a/lgsm/modules/command_dev_detect_ldd.sh
+++ b/lgsm/modules/command_dev_detect_ldd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_detect_ldd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Automatically detects required deps using ldd.
# Can check a file or directory recursively.
diff --git a/lgsm/modules/command_dev_parse_distro_details.sh b/lgsm/modules/command_dev_parse_distro_details.sh
index ca2bfd9ed..f80c909ad 100644
--- a/lgsm/modules/command_dev_parse_distro_details.sh
+++ b/lgsm/modules/command_dev_parse_distro_details.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_parse_distro_details.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Display parsed distro details.
@@ -87,7 +87,7 @@ missing_details=""
# Loop through the distro details and store them.
for key in "${!server_details[@]}"; do
- value=${server_details[$key]}
+ value=${server_details[$key]}
if [ -n "$value" ]; then
available_details+="${lightblue}${key}: ${default}${value}\n"
else
@@ -97,18 +97,18 @@ done
# Sort and output the available distro details.
if [ -n "$available_details" ]; then
- echo -e ""
- echo -e "${bold}${lightgreen}Available Distro Details${default}"
- fn_messages_separator
- echo -e "${available_details}" | sort
+ echo -e ""
+ echo -e "${bold}${lightgreen}Available Distro Details${default}"
+ fn_messages_separator
+ echo -e "${available_details}" | sort
fi
# Sort and output the missing distro details.
if [ -n "$missing_details" ]; then
- echo -e ""
- echo -e "${lightgreen}Missing or unsupported Distro Details${default}"
- fn_messages_separator
- echo -e "${missing_details}" | sort
+ echo -e ""
+ echo -e "${lightgreen}Missing or unsupported Distro Details${default}"
+ fn_messages_separator
+ echo -e "${missing_details}" | sort
fi
core_exit.sh
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
index 5938f817d..87284904c 100644
--- a/lgsm/modules/command_dev_parse_game_details.sh
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_parse_game_details.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Display parsed gameserver details.
diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh
index 39f4787d3..345298941 100644
--- a/lgsm/modules/command_dev_query_raw.sh
+++ b/lgsm/modules/command_dev_query_raw.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_dev_query_raw.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Raw gamedig output of the server.
diff --git a/lgsm/modules/command_fastdl.sh b/lgsm/modules/command_fastdl.sh
index c1c667797..4e9378945 100644
--- a/lgsm/modules/command_fastdl.sh
+++ b/lgsm/modules/command_fastdl.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_fastdl.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates a FastDL directory.
diff --git a/lgsm/modules/command_install.sh b/lgsm/modules/command_install.sh
index c3bf27c61..8dc9a77df 100644
--- a/lgsm/modules/command_install.sh
+++ b/lgsm/modules/command_install.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_install.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Overall module for the installer.
diff --git a/lgsm/modules/command_install_resources_mta.sh b/lgsm/modules/command_install_resources_mta.sh
index 31a9165fd..aecda1452 100644
--- a/lgsm/modules/command_install_resources_mta.sh
+++ b/lgsm/modules/command_install_resources_mta.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_install_resources_mta.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Installs the default resources for Multi Theft Auto.
diff --git a/lgsm/modules/command_mods_install.sh b/lgsm/modules/command_mods_install.sh
index 19de72ab0..d1b3fb67a 100644
--- a/lgsm/modules/command_mods_install.sh
+++ b/lgsm/modules/command_mods_install.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_mods_install.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: List and installs available mods along with mods_list.sh and mods_core.sh.
diff --git a/lgsm/modules/command_mods_remove.sh b/lgsm/modules/command_mods_remove.sh
index 5f70ac389..412e07546 100644
--- a/lgsm/modules/command_mods_remove.sh
+++ b/lgsm/modules/command_mods_remove.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_mods_uninstall.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Uninstall mods along with mods_list.sh and mods_core.sh.
diff --git a/lgsm/modules/command_mods_update.sh b/lgsm/modules/command_mods_update.sh
index cd5c3b03f..ca81dd947 100644
--- a/lgsm/modules/command_mods_update.sh
+++ b/lgsm/modules/command_mods_update.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_mods_update.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Updates installed mods along with mods_list.sh and mods_core.sh.
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index e9baf71e5..a9691fb98 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_monitor.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Monitors server by checking for running processes
# then passes to gamedig and gsquery.
diff --git a/lgsm/modules/command_postdetails.sh b/lgsm/modules/command_postdetails.sh
index 3bfed78ed..6626d51a7 100644
--- a/lgsm/modules/command_postdetails.sh
+++ b/lgsm/modules/command_postdetails.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_postdetails.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Strips sensitive information out of Details output.
diff --git a/lgsm/modules/command_restart.sh b/lgsm/modules/command_restart.sh
index 457d1d17f..0a7f9b5f0 100644
--- a/lgsm/modules/command_restart.sh
+++ b/lgsm/modules/command_restart.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_restart.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Restarts the server.
diff --git a/lgsm/modules/command_send.sh b/lgsm/modules/command_send.sh
index cf6a9f08a..e31452707 100644
--- a/lgsm/modules/command_send.sh
+++ b/lgsm/modules/command_send.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_send.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Send command to the server tmux console.
diff --git a/lgsm/modules/command_skeleton.sh b/lgsm/modules/command_skeleton.sh
index 48a6bd187..ca32610e9 100644
--- a/lgsm/modules/command_skeleton.sh
+++ b/lgsm/modules/command_skeleton.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_skeleton.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates an copy of a game servers directorys.
diff --git a/lgsm/modules/command_sponsor.sh b/lgsm/modules/command_sponsor.sh
index ea49a3099..e7aeeda95 100755
--- a/lgsm/modules/command_sponsor.sh
+++ b/lgsm/modules/command_sponsor.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_sponsor.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Shows ways to sponsor.
diff --git a/lgsm/modules/command_start.sh b/lgsm/modules/command_start.sh
index cca044518..c2be7ed2f 100644
--- a/lgsm/modules/command_start.sh
+++ b/lgsm/modules/command_start.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_start.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Starts the server.
diff --git a/lgsm/modules/command_stop.sh b/lgsm/modules/command_stop.sh
index 7783cc94f..84f5998cd 100644
--- a/lgsm/modules/command_stop.sh
+++ b/lgsm/modules/command_stop.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_stop.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Stops the server.
diff --git a/lgsm/modules/command_test_alert.sh b/lgsm/modules/command_test_alert.sh
index 15f481391..becb365a3 100644
--- a/lgsm/modules/command_test_alert.sh
+++ b/lgsm/modules/command_test_alert.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_test_alert.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Sends a test alert.
diff --git a/lgsm/modules/command_ts3_server_pass.sh b/lgsm/modules/command_ts3_server_pass.sh
index 0223a877c..807d025b7 100644
--- a/lgsm/modules/command_ts3_server_pass.sh
+++ b/lgsm/modules/command_ts3_server_pass.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_ts3_server_pass.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Changes TS3 serveradmin password.
diff --git a/lgsm/modules/command_update.sh b/lgsm/modules/command_update.sh
index a579cfe8e..6bb30a4c8 100644
--- a/lgsm/modules/command_update.sh
+++ b/lgsm/modules/command_update.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_update.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of servers.
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index 4358b626c..e6e5e711d 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_update_linuxgsm.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Deletes the modules dir to allow re-downloading of modules from GitHub.
diff --git a/lgsm/modules/command_validate.sh b/lgsm/modules/command_validate.sh
index d3511d7bb..e35749924 100644
--- a/lgsm/modules/command_validate.sh
+++ b/lgsm/modules/command_validate.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_validate.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Runs a server validation.
diff --git a/lgsm/modules/command_wipe.sh b/lgsm/modules/command_wipe.sh
index 378dae0ec..daf9270e6 100644
--- a/lgsm/modules/command_wipe.sh
+++ b/lgsm/modules/command_wipe.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_backup.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Wipes server data, useful after updates for some games like Rust.
diff --git a/lgsm/modules/compress_unreal2_maps.sh b/lgsm/modules/compress_unreal2_maps.sh
index f67ac7010..4469aca40 100644
--- a/lgsm/modules/compress_unreal2_maps.sh
+++ b/lgsm/modules/compress_unreal2_maps.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM compress_unreal2_maps.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Compresses unreal maps.
diff --git a/lgsm/modules/compress_ut99_maps.sh b/lgsm/modules/compress_ut99_maps.sh
index 51bbd386a..23a93b3b7 100644
--- a/lgsm/modules/compress_ut99_maps.sh
+++ b/lgsm/modules/compress_ut99_maps.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM compress_ut99_maps.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Compresses unreal maps.
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index 908c90f38..dde24d9da 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_dl.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Deals with all downloads for LinuxGSM.
diff --git a/lgsm/modules/core_exit.sh b/lgsm/modules/core_exit.sh
index 989a4c543..fd7645462 100644
--- a/lgsm/modules/core_exit.sh
+++ b/lgsm/modules/core_exit.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_exit.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles exiting of LinuxGSM by running and reporting an exit code.
diff --git a/lgsm/modules/core_getopt.sh b/lgsm/modules/core_getopt.sh
index cd3e57cb5..688dcdc9c 100644
--- a/lgsm/modules/core_getopt.sh
+++ b/lgsm/modules/core_getopt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_getopt.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: getopt arguments.
diff --git a/lgsm/modules/core_github.sh b/lgsm/modules/core_github.sh
index 402ee078c..3b3a96c0f 100644
--- a/lgsm/modules/core_github.sh
+++ b/lgsm/modules/core_github.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_github.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: core module file for updates via github
diff --git a/lgsm/modules/core_legacy.sh b/lgsm/modules/core_legacy.sh
index cf11e3a54..4c9a55c39 100644
--- a/lgsm/modules/core_legacy.sh
+++ b/lgsm/modules/core_legacy.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_legacy.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Code for backwards compatability with older versions of LinuxGSM.
diff --git a/lgsm/modules/core_logs.sh b/lgsm/modules/core_logs.sh
index 3166041ae..7b435b563 100644
--- a/lgsm/modules/core_logs.sh
+++ b/lgsm/modules/core_logs.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_logs.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Acts as a log rotator, removing old logs.
diff --git a/lgsm/modules/core_messages.sh b/lgsm/modules/core_messages.sh
index 52129dc4b..80ef293d8 100644
--- a/lgsm/modules/core_messages.sh
+++ b/lgsm/modules/core_messages.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_messages.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Defines on-screen messages such as [ OK ] and how script logs look.
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index abd9fe423..7726559cc 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_modules.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Defines all modules to allow download and execution of modules using fn_fetch_module.
# This module is called first before any other module. Without this file other modules will not load.
diff --git a/lgsm/modules/core_steamcmd.sh b/lgsm/modules/core_steamcmd.sh
index 326fecf70..552ff1905 100644
--- a/lgsm/modules/core_steamcmd.sh
+++ b/lgsm/modules/core_steamcmd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_steamcmd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Core modules for SteamCMD
diff --git a/lgsm/modules/core_trap.sh b/lgsm/modules/core_trap.sh
index ea6fce869..4b66b3937 100644
--- a/lgsm/modules/core_trap.sh
+++ b/lgsm/modules/core_trap.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM core_trap.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles CTRL-C trap to give an exit code.
diff --git a/lgsm/modules/fix.sh b/lgsm/modules/fix.sh
index 6335659f1..f9628a335 100644
--- a/lgsm/modules/fix.sh
+++ b/lgsm/modules/fix.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Overall module for managing fixes.
# Runs modules that will fix an issue.
diff --git a/lgsm/modules/fix_ark.sh b/lgsm/modules/fix_ark.sh
index 03e53380f..366d137dd 100644
--- a/lgsm/modules/fix_ark.sh
+++ b/lgsm/modules/fix_ark.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ark.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with ARK: Survival Evolved.
diff --git a/lgsm/modules/fix_arma3.sh b/lgsm/modules/fix_arma3.sh
index b415b81d6..66f5ebe5d 100644
--- a/lgsm/modules/fix_arma3.sh
+++ b/lgsm/modules/fix_arma3.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_arma3.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with ARMA3.
diff --git a/lgsm/modules/fix_armar.sh b/lgsm/modules/fix_armar.sh
index ae2c08f33..c2bb8fbdb 100755
--- a/lgsm/modules/fix_armar.sh
+++ b/lgsm/modules/fix_armar.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_armar.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Arma Reforger.
diff --git a/lgsm/modules/fix_av.sh b/lgsm/modules/fix_av.sh
index bfff59af6..ea225810c 100644
--- a/lgsm/modules/fix_av.sh
+++ b/lgsm/modules/fix_av.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_av.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Avorion.
diff --git a/lgsm/modules/fix_bo.sh b/lgsm/modules/fix_bo.sh
index 24e76874e..5d74f27de 100644
--- a/lgsm/modules/fix_bo.sh
+++ b/lgsm/modules/fix_bo.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_hw.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Ballistic Overkill.
diff --git a/lgsm/modules/fix_bt.sh b/lgsm/modules/fix_bt.sh
index 4d837a1ba..51fc3d505 100755
--- a/lgsm/modules/fix_bt.sh
+++ b/lgsm/modules/fix_bt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_bt.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Barotrauma.
diff --git a/lgsm/modules/fix_cmw.sh b/lgsm/modules/fix_cmw.sh
index a57c6c8cb..413bfbc33 100644
--- a/lgsm/modules/fix_cmw.sh
+++ b/lgsm/modules/fix_cmw.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_cmw.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Chivalry: Medieval Warfare.
diff --git a/lgsm/modules/fix_csgo.sh b/lgsm/modules/fix_csgo.sh
index ea858ee3c..8f5550ab5 100644
--- a/lgsm/modules/fix_csgo.sh
+++ b/lgsm/modules/fix_csgo.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_csgo.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Counter-Strike: Global Offensive.
diff --git a/lgsm/modules/fix_dst.sh b/lgsm/modules/fix_dst.sh
index ff963d342..2848fa5bb 100644
--- a/lgsm/modules/fix_dst.sh
+++ b/lgsm/modules/fix_dst.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_dst.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Don't Starve Together.
diff --git a/lgsm/modules/fix_hw.sh b/lgsm/modules/fix_hw.sh
index 0e70b7195..c7d209bb6 100644
--- a/lgsm/modules/fix_hw.sh
+++ b/lgsm/modules/fix_hw.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_hw.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Hurtworld.
diff --git a/lgsm/modules/fix_ins.sh b/lgsm/modules/fix_ins.sh
index cc79e3685..1d1423c6b 100644
--- a/lgsm/modules/fix_ins.sh
+++ b/lgsm/modules/fix_ins.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ins.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Insurgency.
diff --git a/lgsm/modules/fix_kf.sh b/lgsm/modules/fix_kf.sh
index e38b5883a..00b99e06c 100644
--- a/lgsm/modules/fix_kf.sh
+++ b/lgsm/modules/fix_kf.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_kf.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Killing Floor.
diff --git a/lgsm/modules/fix_kf2.sh b/lgsm/modules/fix_kf2.sh
index cb4707414..495e9d70e 100644
--- a/lgsm/modules/fix_kf2.sh
+++ b/lgsm/modules/fix_kf2.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_kf2.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Killing Floor 2.
diff --git a/lgsm/modules/fix_mcb.sh b/lgsm/modules/fix_mcb.sh
index 1e95bb4a8..bc84d84e1 100644
--- a/lgsm/modules/fix_mcb.sh
+++ b/lgsm/modules/fix_mcb.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_mcb.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves various issues with Minecraft Bedrock.
diff --git a/lgsm/modules/fix_mta.sh b/lgsm/modules/fix_mta.sh
index 4e533eb51..2fff69691 100644
--- a/lgsm/modules/fix_mta.sh
+++ b/lgsm/modules/fix_mta.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_mta.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves various issues with Multi Theft Auto.
diff --git a/lgsm/modules/fix_nmrih.sh b/lgsm/modules/fix_nmrih.sh
index dfbb76d92..4eb76c24e 100644
--- a/lgsm/modules/fix_nmrih.sh
+++ b/lgsm/modules/fix_nmrih.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_nmrih.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Create symlinks for renamed No More Room In Hell serverfiles.
# Solution from Steam Community post: https://steamcommunity.com/app/224260/discussions/2/1732089092441769414/
diff --git a/lgsm/modules/fix_onset.sh b/lgsm/modules/fix_onset.sh
index 7d644ef7b..6430e5d6b 100644
--- a/lgsm/modules/fix_onset.sh
+++ b/lgsm/modules/fix_onset.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_onset.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves various issues with Onset.
diff --git a/lgsm/modules/fix_pvr.sh b/lgsm/modules/fix_pvr.sh
index 6d8727e33..e4409bc37 100644
--- a/lgsm/modules/fix_pvr.sh
+++ b/lgsm/modules/fix_pvr.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_pvr.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves various issues with Pavlov VR.
diff --git a/lgsm/modules/fix_ro.sh b/lgsm/modules/fix_ro.sh
index 21663a9ea..8b9bee442 100644
--- a/lgsm/modules/fix_ro.sh
+++ b/lgsm/modules/fix_ro.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ro.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Red Orchestra: Ostfront 41-45.
diff --git a/lgsm/modules/fix_rust.sh b/lgsm/modules/fix_rust.sh
index 809b5b1df..af995a2fa 100644
--- a/lgsm/modules/fix_rust.sh
+++ b/lgsm/modules/fix_rust.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_rust.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Rust.
diff --git a/lgsm/modules/fix_rw.sh b/lgsm/modules/fix_rw.sh
index 17acf4def..dee15dedb 100644
--- a/lgsm/modules/fix_rw.sh
+++ b/lgsm/modules/fix_rw.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_rw.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Rising World.
diff --git a/lgsm/modules/fix_samp.sh b/lgsm/modules/fix_samp.sh
index 0b5d0ab22..e193485d7 100644
--- a/lgsm/modules/fix_samp.sh
+++ b/lgsm/modules/fix_samp.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_sfc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issue that the default rcon password is not changed.
diff --git a/lgsm/modules/fix_sdtd.sh b/lgsm/modules/fix_sdtd.sh
index 7988b0d67..2b4620687 100644
--- a/lgsm/modules/fix_sdtd.sh
+++ b/lgsm/modules/fix_sdtd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_sdtd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with 7 Days to Die.
diff --git a/lgsm/modules/fix_sfc.sh b/lgsm/modules/fix_sfc.sh
index 308f74b24..70e5d0484 100644
--- a/lgsm/modules/fix_sfc.sh
+++ b/lgsm/modules/fix_sfc.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_sfc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Source Forts Classic.
diff --git a/lgsm/modules/fix_sm.sh b/lgsm/modules/fix_sm.sh
index 1d72a48bf..d75ca8c78 100644
--- a/lgsm/modules/fix_sm.sh
+++ b/lgsm/modules/fix_sm.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_sm.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Unturned.
diff --git a/lgsm/modules/fix_sof2.sh b/lgsm/modules/fix_sof2.sh
index 4e5b13624..45e3b299c 100644
--- a/lgsm/modules/fix_sof2.sh
+++ b/lgsm/modules/fix_sof2.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_rust.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Soldier of Fortune 2.
diff --git a/lgsm/modules/fix_squad.sh b/lgsm/modules/fix_squad.sh
index 2fec57f0e..b9ee76a8d 100644
--- a/lgsm/modules/fix_squad.sh
+++ b/lgsm/modules/fix_squad.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_squad.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Squad.
diff --git a/lgsm/modules/fix_st.sh b/lgsm/modules/fix_st.sh
index 4d100c6fc..bbd9890bd 100644
--- a/lgsm/modules/fix_st.sh
+++ b/lgsm/modules/fix_st.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_rust.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Stationeers.
diff --git a/lgsm/modules/fix_steamcmd.sh b/lgsm/modules/fix_steamcmd.sh
index 2a2076072..0ba5c85b2 100644
--- a/lgsm/modules/fix_steamcmd.sh
+++ b/lgsm/modules/fix_steamcmd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_steamcmd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with SteamCMD.
diff --git a/lgsm/modules/fix_terraria.sh b/lgsm/modules/fix_terraria.sh
index dc734b6fd..0d45e257f 100644
--- a/lgsm/modules/fix_terraria.sh
+++ b/lgsm/modules/fix_terraria.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_terraria.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Terraria.
diff --git a/lgsm/modules/fix_tf2.sh b/lgsm/modules/fix_tf2.sh
index fe7de8278..105026488 100644
--- a/lgsm/modules/fix_tf2.sh
+++ b/lgsm/modules/fix_tf2.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_tf2.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Team Fortress 2.
diff --git a/lgsm/modules/fix_ts3.sh b/lgsm/modules/fix_ts3.sh
index 5c80aa15e..0f081cb37 100644
--- a/lgsm/modules/fix_ts3.sh
+++ b/lgsm/modules/fix_ts3.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ts3.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Teamspeak 3.
diff --git a/lgsm/modules/fix_unt.sh b/lgsm/modules/fix_unt.sh
index 9afdce337..dbe64ffd6 100644
--- a/lgsm/modules/fix_unt.sh
+++ b/lgsm/modules/fix_unt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_rust.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Unturned.
diff --git a/lgsm/modules/fix_ut.sh b/lgsm/modules/fix_ut.sh
index ded65ddad..3da5c068c 100644
--- a/lgsm/modules/fix_ut.sh
+++ b/lgsm/modules/fix_ut.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ut.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Unreal Tournament.
diff --git a/lgsm/modules/fix_ut2k4.sh b/lgsm/modules/fix_ut2k4.sh
index 5da1eee12..4b9d35011 100644
--- a/lgsm/modules/fix_ut2k4.sh
+++ b/lgsm/modules/fix_ut2k4.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ut2k4.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Unreal Tournament 2004.
diff --git a/lgsm/modules/fix_ut3.sh b/lgsm/modules/fix_ut3.sh
index 386833efc..aa5c5e464 100644
--- a/lgsm/modules/fix_ut3.sh
+++ b/lgsm/modules/fix_ut3.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_ut2.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Unreal Tournament 3.
diff --git a/lgsm/modules/fix_wurm.sh b/lgsm/modules/fix_wurm.sh
index b6f5762f5..6f17ccd76 100644
--- a/lgsm/modules/fix_wurm.sh
+++ b/lgsm/modules/fix_wurm.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_wurm.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Wurm Unlimited.
diff --git a/lgsm/modules/fix_xnt.sh b/lgsm/modules/fix_xnt.sh
index 218b99a66..44b51c5de 100644
--- a/lgsm/modules/fix_xnt.sh
+++ b/lgsm/modules/fix_xnt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_xnt.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Install Xonotic Default Config
diff --git a/lgsm/modules/fix_zmr.sh b/lgsm/modules/fix_zmr.sh
index a88d82f34..5b42eeccf 100644
--- a/lgsm/modules/fix_zmr.sh
+++ b/lgsm/modules/fix_zmr.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM fix_sfc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Resolves issues with Zombie Master: Reborn.
diff --git a/lgsm/modules/info_distro.sh b/lgsm/modules/info_distro.sh
index adcdb759b..0813554dc 100644
--- a/lgsm/modules/info_distro.sh
+++ b/lgsm/modules/info_distro.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM info_distro.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Variables providing useful info on the Operating System such as disk and performace info.
# Used for command_details.sh, command_debug.sh and alert.sh.
@@ -29,8 +29,8 @@ kernel="$(uname -r)" # Kernel e.g. 2.6.32-042stab120.16
distro_info_array=(os-release lsb_release hostnamectl debian_version redhat-release)
for distro_info in "${distro_info_array[@]}"; do
if [ -f "/etc/os-release" ] && [ "${distro_info}" == "os-release" ]; then
- distroname="$(grep "PRETTY_NAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. Ubuntu 22.04.3 LTS
- distroversion="$(grep "VERSION_ID" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. 22.04
+ distroname="$(grep "PRETTY_NAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. Ubuntu 22.04.3 LTS
+ distroversion="$(grep "VERSION_ID" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. 22.04
distroid="$(grep "ID=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. ubuntu
distroidlike="$(grep "ID_LIKE=" /etc/os-release | grep -v _ID | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. debian
distrocodename="$(grep "VERSION_CODENAME" /etc/os-release | awk -F= '{gsub(/"/,"",$2);print $2}')" # e.g. jammy
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 8496f078f..a9d9834b0 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM info_game.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Gathers various game server information.
# !Note: When adding variables to this script, ensure that they are also added to the command_dev_parse_game_details.sh script.
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 7f40c8312..ff4b5d870 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM info_messages.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Defines server info messages for details and alerts.
diff --git a/lgsm/modules/info_stats.sh b/lgsm/modules/info_stats.sh
index dcc247b59..c8a96552a 100644
--- a/lgsm/modules/info_stats.sh
+++ b/lgsm/modules/info_stats.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM info_stats.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Collect optional Stats sent to LinuxGSM project.
# Uses Google analytics.
diff --git a/lgsm/modules/install_complete.sh b/lgsm/modules/install_complete.sh
index 5a9873067..0ee01954a 100644
--- a/lgsm/modules/install_complete.sh
+++ b/lgsm/modules/install_complete.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_complete.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Prints installation completion message and hints.
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 96ae70654..1517812c1 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_config.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates default server configs.
diff --git a/lgsm/modules/install_dst_token.sh b/lgsm/modules/install_dst_token.sh
index 89ec00a90..fd0b4727b 100644
--- a/lgsm/modules/install_dst_token.sh
+++ b/lgsm/modules/install_dst_token.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_dst_token.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Configures Don't Starve Together cluster with given token.
diff --git a/lgsm/modules/install_eula.sh b/lgsm/modules/install_eula.sh
index 7f7f95f35..272ff205a 100644
--- a/lgsm/modules/install_eula.sh
+++ b/lgsm/modules/install_eula.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_eula.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Gets user to accept the EULA.
diff --git a/lgsm/modules/install_factorio_save.sh b/lgsm/modules/install_factorio_save.sh
index 589a9d8ed..5dfb4758c 100644
--- a/lgsm/modules/install_factorio_save.sh
+++ b/lgsm/modules/install_factorio_save.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_factorio_save.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates the initial save file for Factorio.
diff --git a/lgsm/modules/install_gslt.sh b/lgsm/modules/install_gslt.sh
index aa8d89d33..960b1e20c 100644
--- a/lgsm/modules/install_gslt.sh
+++ b/lgsm/modules/install_gslt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_gslt.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Configures GSLT.
diff --git a/lgsm/modules/install_header.sh b/lgsm/modules/install_header.sh
index a7f1f9ddb..8fad78d2c 100644
--- a/lgsm/modules/install_header.sh
+++ b/lgsm/modules/install_header.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_header.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Prints installation header.
diff --git a/lgsm/modules/install_logs.sh b/lgsm/modules/install_logs.sh
index 294bc1e46..3e522a082 100644
--- a/lgsm/modules/install_logs.sh
+++ b/lgsm/modules/install_logs.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_logs.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates log directories.
diff --git a/lgsm/modules/install_mta_resources.sh b/lgsm/modules/install_mta_resources.sh
index bafdbdbf1..f13c39abd 100644
--- a/lgsm/modules/install_mta_resources.sh
+++ b/lgsm/modules/install_mta_resources.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_mta_resources.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Installs the libmysqlclient for database functions on the server and optionally installs default resources required to run the server.
diff --git a/lgsm/modules/install_retry.sh b/lgsm/modules/install_retry.sh
index 1fc4bf36a..71417a73f 100644
--- a/lgsm/modules/install_retry.sh
+++ b/lgsm/modules/install_retry.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_retry.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Asks for installation retry after failure.
diff --git a/lgsm/modules/install_server_dir.sh b/lgsm/modules/install_server_dir.sh
index 0703e0c54..2922f397a 100644
--- a/lgsm/modules/install_server_dir.sh
+++ b/lgsm/modules/install_server_dir.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_server_dir.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Creates the server directory.
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index 7d773ce9f..33043d8b6 100644
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_server_files.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Installs server files.
diff --git a/lgsm/modules/install_squad_license.sh b/lgsm/modules/install_squad_license.sh
index 28f4456a5..0bb71c4a8 100644
--- a/lgsm/modules/install_squad_license.sh
+++ b/lgsm/modules/install_squad_license.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_squad_license.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Configures the Squad server's license.
diff --git a/lgsm/modules/install_stats.sh b/lgsm/modules/install_stats.sh
index 40a13434d..fa43c280f 100644
--- a/lgsm/modules/install_stats.sh
+++ b/lgsm/modules/install_stats.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_stats.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Enabled LinuxGSM Stats.
diff --git a/lgsm/modules/install_steamcmd.sh b/lgsm/modules/install_steamcmd.sh
index 50599ebd5..475544a6a 100644
--- a/lgsm/modules/install_steamcmd.sh
+++ b/lgsm/modules/install_steamcmd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_steamcmd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Downloads SteamCMD on install.
diff --git a/lgsm/modules/install_ts3db.sh b/lgsm/modules/install_ts3db.sh
index 464bd686a..c8f90a9cf 100644
--- a/lgsm/modules/install_ts3db.sh
+++ b/lgsm/modules/install_ts3db.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_ts3db.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Installs the database server MariaDB for TeamSpeak 3.
diff --git a/lgsm/modules/install_ut2k4_key.sh b/lgsm/modules/install_ut2k4_key.sh
index 6fbd2a838..7ffbba20c 100644
--- a/lgsm/modules/install_ut2k4_key.sh
+++ b/lgsm/modules/install_ut2k4_key.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM install_ut2k4_key.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Activates ut2k4 server with given key.
diff --git a/lgsm/modules/mods_core.sh b/lgsm/modules/mods_core.sh
index 1b85a95b3..aa24d903f 100644
--- a/lgsm/modules/mods_core.sh
+++ b/lgsm/modules/mods_core.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_mods_install.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Core modules for mods list/install/update/remove
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index ca320e468..d6622d1b2 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM mods_list.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Lists and defines available mods for LinuxGSM supported servers; works along with mods_core.sh.
# Usage: To add a mod, you need to add an array variable following the guide to set proper values;
diff --git a/lgsm/modules/query_gamedig.sh b/lgsm/modules/query_gamedig.sh
index efac18d45..f370fae97 100644
--- a/lgsm/modules/query_gamedig.sh
+++ b/lgsm/modules/query_gamedig.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM query_gamedig.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Querys a gameserver using node-gamedig.
# https://github.com/gamedig/node-gamedig
diff --git a/lgsm/modules/query_gsquery.py b/lgsm/modules/query_gsquery.py
index 788789f0a..ecdf8165c 100644
--- a/lgsm/modules/query_gsquery.py
+++ b/lgsm/modules/query_gsquery.py
@@ -2,7 +2,7 @@
# -*- coding: utf-8 -*-
# LinuxGSM query_gsquery.py module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Allows querying of various game servers.
diff --git a/lgsm/modules/update_fctr.sh b/lgsm/modules/update_fctr.sh
index 8fb78ede3..b64812319 100644
--- a/lgsm/modules/update_fctr.sh
+++ b/lgsm/modules/update_fctr.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_fctr.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Factorio servers.
diff --git a/lgsm/modules/update_jk2.sh b/lgsm/modules/update_jk2.sh
index e2715c01c..ed4886a48 100644
--- a/lgsm/modules/update_jk2.sh
+++ b/lgsm/modules/update_jk2.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_jk2.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Jedi Knight 2 servers.
diff --git a/lgsm/modules/update_mc.sh b/lgsm/modules/update_mc.sh
index 40038ddeb..6ece44da4 100644
--- a/lgsm/modules/update_mc.sh
+++ b/lgsm/modules/update_mc.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_mc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Minecraft: Java Edition servers.
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index 7bd273d66..55b3586fd 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_mcb.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Minecraft Bedrock servers.
diff --git a/lgsm/modules/update_mta.sh b/lgsm/modules/update_mta.sh
index c6f7dfcb0..b93dc9af1 100644
--- a/lgsm/modules/update_mta.sh
+++ b/lgsm/modules/update_mta.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_mta.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Multi Theft Auto servers.
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index 5d44bee21..b3c7d0dc2 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_pmc.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of PaperMC and Waterfall servers.
diff --git a/lgsm/modules/update_steamcmd.sh b/lgsm/modules/update_steamcmd.sh
index 20a85ab93..ccc8d6b36 100644
--- a/lgsm/modules/update_steamcmd.sh
+++ b/lgsm/modules/update_steamcmd.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_steamcmd.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating using SteamCMD.
diff --git a/lgsm/modules/update_ts3.sh b/lgsm/modules/update_ts3.sh
index 1fa77f428..30ddf2801 100644
--- a/lgsm/modules/update_ts3.sh
+++ b/lgsm/modules/update_ts3.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_ts3.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Teamspeak 3 servers.
diff --git a/lgsm/modules/update_ut99.sh b/lgsm/modules/update_ut99.sh
index 6d0be1941..cb74ec3b7 100644
--- a/lgsm/modules/update_ut99.sh
+++ b/lgsm/modules/update_ut99.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_ut99.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Unreal Tournament 99 servers.
diff --git a/lgsm/modules/update_vints.sh b/lgsm/modules/update_vints.sh
index 403917e0c..2f7f857a1 100644
--- a/lgsm/modules/update_vints.sh
+++ b/lgsm/modules/update_vints.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM update_vints.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Vintage Story servers.
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index d935e3989..f2cdbe324 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# LinuxGSM command_ut99.sh module
# Author: Daniel Gibbs
-# Contributors: http://linuxgsm.com/contrib
+# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Handles updating of Unreal Tournament 99 servers.
From 4446e79d78b655d79db4d9d0333753af391d00b3 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 21:58:44 +0100
Subject: [PATCH 066/154] feat(ut3): Update the UT3 archive to have OpenSpy fix
(#4657)
---
lgsm/config-default/config-lgsm/ut3server/_default.cfg | 4 ++--
lgsm/modules/install_server_files.sh | 6 +++---
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/ut3server/_default.cfg b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
index 1088d1f0c..22817e40c 100644
--- a/lgsm/config-default/config-lgsm/ut3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ut3server/_default.cfg
@@ -22,8 +22,8 @@ usesstats="false"
shouldadvertise="true"
pureserver="1"
allowjoininprogress="true"
-# Required: GameSpy Username and password
-# https://docs.linuxgsm.com/game-servers/unreal-tournament-3#server-gamespy-login
+# Required: OpenSpy Username and password
+# https://docs.linuxgsm.com/game-servers/unreal-tournament-3#server-openspy-login
gsusername=""
gspassword=""
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index 33043d8b6..baa18aef7 100644
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -193,13 +193,13 @@ fn_install_server_files() {
force="noforce"
md5="41dd92015713a78211eaccf503b72393"
elif [ "${shortname}" == "ut3" ]; then
- remote_fileurl="http://linuxgsm.download/UnrealTournament3/UT3-linux-server-2.1.tar.xz"
+ remote_fileurl="http://linuxgsm.download/UnrealTournament3/UT3-linux-server-2.1-openspy.tar.xz"
local_filedir="${tmpdir}"
- local_filename="UT3-linux-server-2.1.tar.xz"
+ local_filename="UT3-linux-server-2.1-openspy.tar.xz"
chmodx="nochmodx"
run="norun"
force="noforce"
- md5="8876cca61e3f83ea08db25208bde6ac6"
+ md5="f60b745613a8676666eb6a2450cbdc8e"
elif [ "${shortname}" == "vs" ]; then
remote_fileurl="http://linuxgsm.download/VampireSlayer/vs_l-6.0_full.tar.xz"
local_filedir="${tmpdir}"
From 2651c31695896ee577aaa82e1eb3e76c8977fe6d Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:06:12 +0100
Subject: [PATCH 067/154] add xnt icon
---
lgsm/data/gameicons/xnt-icon.png | Bin 0 -> 6828 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 lgsm/data/gameicons/xnt-icon.png
diff --git a/lgsm/data/gameicons/xnt-icon.png b/lgsm/data/gameicons/xnt-icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..f230eb407b9b936e571746c6ccf36baaacea2e3c
GIT binary patch
literal 6828
zcmeHLc{o(<`yUh`TP0blX-bIMhglj+mYD2IA&N0`FflXCjK;2%BqhWvOP17>5``p7
zs3g556h+C_8xm64mwtzOtM~eSuj_Zc*Y*4U*UWY1oO3^)`}5rQ=f0okI%i^RtW2dO
zlq4V!h!n-l*bY2H7mpR9;4e2g_zQTt8|>i3v!n8%ejK(Z!xw<^g8Tp|5XkU^Kmt3M
zHn!6DpeyG4*KCgz-b;wvS3$?W9E&zgFCS5bRhnk5_>eUzxnccT#WF3sn{9M=pw2U9
zi>WeNZG%6=s3^F%XHAoOQF>*P(!5xfwMcau@R!Gyr?PF%HqsH(=o2Y<*3Un~PvTCl
z*!PgyH0P3cMe7AJKO}8ac(&LdK_6VIUQU#HjLP;}r6!ud#)K|!6g}|AWs?$tRge24
zch1>%!-e5NNT^VIsk78_?5Ai5MCd5P$jF9bWb}77U=A5!3A$$Y3{>je?CWH~D^iTY2yF_4^jO3Hu+{a6>!q
z)xW4%@${44WdAywPg_MoVg5;j$4n}BkSiF28Iv(b^0#Q*@4tUWbYJ{b!cftl?2K4x
zNix=(Zuj~A4v!lzYdK=Yi8-sD%0{o*og2DosOWA`Z1LW_8*RGNk|IG&)h7XIeaC6y
z;#)Qu?vw%?+&39s-FYHr&2T+=juxj+L8Q6@D2`UPgnVM3*w-UnooP{n8h8y^k#aZR
zS(@-b`|`AaR||Tj!|%kqBSZ^IN~=2{@AN2zw{AAcp~|FOU2kaz$&|eo+L^^`h*xQ_
zwpU+sXc9XkP(kq|zZBlCx;f!L1EF8O`j>Kdx9kc9jgZd1&Z=`&^C5!PE*XJ2r$Qoi
zStr1PCZGt7cHfPJu)11;ExMx?{^^(4rFB#?j!@Tky0rZ0<23e<%y@shynMKclx
zU4rm@bYV`GHc%rr2Y})bI0OoA6394+f$2#=$sD>T$RiG5stpf6%kI-&FwhKn7C%kZ1%7$z&pb_2BYM4uT}#1Nx61TnBKGBJBV!JAgw2
zOb!Ap-sWE^=(HdHegPccrF7^tB;X4$K`0lT75$GXO(~W(KRgyC@M19imb^f*|AFK&
zJb#MykJuJRmeTn(5YYVx??2Fg=e`66QI?h@V>T^dF+7T~E^Kjr5}i$B&`C>|fCmll
z;R#j(N6;q1ades|+ye{H;b=4#Pw?=-;&iZtU#KW7E|1Eh0gF^1If4Q5-~gO9P1{o&
zt^??x;W(l;9!?~n=x_`k&<4=jcpVx6_X~wJhXHma)%Vw^7OChU6&g01h}FRoe}eV^94^?4i>zoA
z;=3e^g&~3IfYMSII~62Y@&L0T8F2tAkIivlvwd}8i$OsbJ%0>af(wdH4!C_eEe7=aW&^h_a3@6m*b2Yv1;+Z{
z{Cuy&e{%{b^!FtHO5fjd{g&%rDe$krzq{+VT>naee+B;CUH@-#N&I}70$AV^5FdP1
zits;N016suW%$&Iph~(h=5IRPY^VWv{+?)Fw%H@#%?<1e8S%UQ}wBI$YDO
zc<*_WXLdsgW1oeOw-iG;gJckNlwe80SddeXQqoI}PFg}~AGYYMyG}PR0-V_{J7rva
zD4N5a$rAxj2RE*Q3BS#$!d4UcBdOf*>aNMmuIccINaSq(v>k_9>!Q{Zo$WfloUaI@JOB2o8<@O;$!YkJ+@*%h0iN@
zl0BvrHayx}QPCQ}Wmb+dHhr}gdRv))G$in~oZiCgqPI4m@mCxX<^2OU_#)fn6`(tw
zBxJ}QI_6jAzIQ0^jQ{ZPD{ejf~{tN
zZL*L_Q>z)N4$1Joe?ld&@BU<%yi7GLa;W~;!q_u6%n^gO{i-KxcV@ND6{~HC;0=vf
zRCmqZjqNhod*q?R8u|fJ$TV?{;E#>Xg&c6uF{G^A
z8kdYAm1*nywUb#%#O?mhQ8#H+LNXuh2f76goj0gWW}=TFE8lLxlPJo{8r$zzOe0h)_%8+
z(DDSqXRm}aJ?)Lj%NU!JPUTqwt^;zReR0AQt;zo8nXzB>rZ(}D0sk9UvyMGm|2%ni
z`cjARoJU4!n`fFezR3UcOv{(RF00nA-sMfPS+?b^f$qa1Ln$K~8V&sFG5u=K>`QW~
z$1RNJ84yz9N)e80jLiDYfSClQ}KCRZ4A6uEJ$4nd?_V^;Uf(NX;C}b&b1l
zd~1e7!CpiWHY3U_U0H8s==cC&qzV)0`ZHZv%^evdcjVGKIugWv{@~_pDUT0Sv2Xku
zy8BRF&<1H0)>gd)PZvwY1a%xg`sIG*Eg5Z74bdV_8tW+P1(t?(hR>o7vPP9R-MXw^
zpGl~)RE4RXYG~vOt9}-4bu_(8z!b%gp&l)iyji{~TJR9J{5GQ2e)s2fH&;~#Uk3!j
zUx%DtJPrv87kzPFLxMfl#~Dx=ES)lWwWai&LEXKRYU?jNxR>-;(jl7ECGMT~vCe(4
zoRwkEx^0T-jp6UF6UX!N9p4hCUUY;ig&3-kr_rUolEZmfS$`S(=nHnCmCP~g
zC{**PM4fGlo7coOH#bujIUJ@un&K%}wSbw|XCAqCzenv77--;x5KlKhUDDl}J*0+`=Lv%_DPXo4_h6@C;2d$FT%^zl)s_4CCZL!vJz%y>nJxYC%|-w6
zf~^!yJug+E)f%|)pjy}(OPZ>$U8!NCO_YJRGPC
zFhEnc8C+&4^5mR(X;{qWlwO_-V?>K*L+sk|be&nUd%5vaiOU>BlWS11EobG$Iky~lP@mU?U{v}Bh1tC?K_30v0Cab&8ueRk}+my
znvb5>OY$UdvMsfoy!j>LF9q|LYl7BKxrz#Mau`a6E0zgU3C-A8r|U&0;$)=Hq`Mh_
zB;JBTb1oe@@L|+@P}7yO{Y;yBjQ8=oCzN=6h!MXVhuc*tdas$lIQvZcmPuJyCgsM{
zEnR&zqnM9pNr+1^gHkrGwni`|j~1niehtH4_$6P6MGCwFBSr9>kA4GXgAFDZdvWU*
z1c6%0B2|U2x!Kd#U-EZJ;~sP(auJ$HByEbL*~~8ccky
z7w2IAsV`V3A+pUT!wJ@ysJy05(Z=~YMCYr>Ikkn=K4n?mO#T@QMlLPkel_8Uw(j0)
znL+V3ZJy4H>N5(JMpU)iE&eBB$HD)D`mlr|$HdX*>pkW!ZpIvzdR%INq^|Nrvwg&I
z&GnaRtP(+d0O;2T`hS^?Csnt{vR_?g%K(kaBmMm(eRtSrgRbH`Q(C(}
zMA(WuPPRWDxSchc=j2$Ssoj#$%=;LE4Pcd#9bQ+&=Fg>nTp`X5kIn7360&i*AzC`3
zD!|<}s>;}2lEowI6d$Y$JKgutnH)4SpF3M6A2Aae+Uy9USxbx)o%Oz|UTkQaEcO@{
z%eq|29Cq{alIU`o<)6QxJJfR9-$bgFKivIVa#Gl4Y%-b<{#L=2MbdG}^C1OPgx7c*
zJD=KkZjNs~9fo9>zlbU%k1a1!fd4hHrGbLa`wb5^oa#R3Xw`V)rpoN#oz$QUPaZ@c95a<6=aCxu6PeXb3ru!h+{P;{
zF7?q9k6F*&`92}%+HxyGsK(9ximUFHTNw4LF+`<+?z?1-~_(XY<^8WLQq~;}4ul@zW;P+Q-wM^(SR6OjY9B
zrrQn>(UrsRdJV>zK7S~91@B`4YU6W}!jNO4VshmS)AM67r>$;&xj7yc=QHvePp&N&
z&80h+jA~H7R+rNt6PmUvCaZ1#JQ+~6-t5$ViANW9Z>66%d#Ry+sAWBE7k9!(Q21xU
rzK%hSSF7yyyA?f+rKgm!(if^VBG7_in%y|~+zFwWSQ!@>x<~#Gf2SZ=
literal 0
HcmV?d00001
From 6849815acd53de6216bed470215f5de7cdce89e6 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:10:40 +0100
Subject: [PATCH 068/154] add missing sm
---
lgsm/data/debian-13.csv | 1 +
1 file changed, 1 insertion(+)
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
index af262abb6..5ddb19405 100644
--- a/lgsm/data/debian-13.csv
+++ b/lgsm/data/debian-13.csv
@@ -105,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
+sm,telnet,expect
sof2
sol
squad
From 5ebeb1379b9c5a9340fb70c04fa9c558dc324abc Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:12:50 +0100
Subject: [PATCH 069/154] remove mom icon
---
lgsm/data/gameicons/mom-icon.png | Bin 3025 -> 0 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 lgsm/data/gameicons/mom-icon.png
diff --git a/lgsm/data/gameicons/mom-icon.png b/lgsm/data/gameicons/mom-icon.png
deleted file mode 100644
index 317b6010a9e19865cb56eb507aef10d03ce9ece6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 3025
zcmV;?3oi7DP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006
zVoOIv0RI600RN!9r;`8x010qNS#tmY4%h$y4%h()NRg%h000McNliru=L!%J3Lm#W
z;+y~g3cyK3K~zY`1;J^IT=zi$@c;4d_vT%5?Hqf}uGhOhcJ0(hoThP2jGLxSgVI1l
zA%Sm20xE&}p;YhzA&P{6N+2~VNr|XbTNM#bDx$_}qPWevwqtwkt=Hbed(H05&OP(q
zn|Gi5e(>9$pUE&rD+C^;NcKPk&?SW!#V83lnhR{7VVIaC`kp1Q02Qw1w8|@T5{Pv2WUn3sZrpDZJfRyw
z5EF(uND`Yuz!(go(CzvOqa|&xE-`ju=ul)hghGcLxTfCgN*tj|JdGiPXh;i9%Of%=
z0_5(?6w+0X0+6;
z+pVZvF6%%SlytA=77CIv+~t*tFo`Hjzx%WIPrdT{hZ>vjul(zmU;m2&S7t^3`sIK3
z4t50Fba}?Y6cKRn^0&XpV-lz^DZT%aKmr{Dk1_!tj=@P}t>-R^h(1|SYPx}H+f
zsJXTL{tx?4ZpIN<-uR>d1w~;7>$e~N>?#0}2eiHYEru;tE`HS=DIA_$XwV~m=obWh;#PQG`0N|~?_tWb2tMg}`yZ+9PD_?#!vTfBw0Mpa2yz!5J^d~JZ6ilE7
zaJ#oYE}lH~m;W|CSpgQbo4cRA{SS?Yw<_5~zTWI#c=5k}dGGOoQ0=*2Ss;+-=%i+q
zb448nvrnJ>^?zP|=X>Af3IN-PA1S+8J_)VhvwMGk;dy`a9*``lxKJofBF=m7``h-yM#he(|Xn-jGioJM!8$Nt(X$-*3fC>_r31b?}!CsU`%bdi$d^{Tm4E)B4h-cpER{gUwa+DJW4A{)+J(6lA@3o36{Z;4?}_=J(`Iy9^*2)
z0aknA(spN?#u-UWlMI=ncm#{3V#q+&33cDwUN?TUxJHtCN=m=|!J}fP^vvn`;Xp@8
zgf)URKpYQUk(P}xpm=J8W(n4kp~5g?c0abM61)pDg#$G_VY9x!N3iofKTjU51SYv4@Quo
zNRh((kyCX%*w)W3jEQ`DbEpY?=E~1MURtkh>^8P+WATIQkL$+8oFin$e}2mdeeKk7
za41WW!2&TU#ymkYC|quCGfW9|K{f1zp)o1YD(q6wf6V8$9i~+`Mn||}Rv~2O_Tq!B
zYHxk523Bfe2w0vCg1{A$muJei>kiw+d^0NwlA&+N-@wOF_5ye8N1=k*5(q^>z)*n1QC@(b)&0eqGbQqK
zg8#YaXJeVnK#o`mm1KMKzUw8JI?6=?6E*C>qVmmyhR9Gbi6BKdzV*g8F245aD?fSr
z&Gp9z6BC8d*D!z-hKfW*v5zsdB1j_kL{67zCm)A@enFl1+H3D!r*N57x>`R?3k4^d`>-g
zW*)$>J1~!*IDL2V#>XFj%u*~t5QE+z41CY?C`=$v`>idHi<*)o^GCl>d8)K))LOUh
z5SDAqD1`${yS4=qIUR2`
z?S+A7o6vXM7{;AAIjRcBC20A5oRhCDx2}A!2P@|Pd)>K>SzDztX-gZ<&zv?q(Bco2CZa!jX}$>bG*
z!@g5d<%Rjmk?C1pqL4~e%2R2OIW%{6=F~a;U|`d5ePz}5Fqh&&XVD3GCiuwlN0Ls&rJs?yhl-
ze{f97s)C&27>WpN3&)9N40~;jhz-B1^^HNx=rtR=-R^emb|Ryecv^@^E^xZL2iJa6
zt=9%eB}#~p&k!)sAPfl_V~)JKwEoe0_1UKn5hj`PLZ)xTAb`6&Eyt||i1A{)*BFka
z^7{`PZGWjCswhraRmv;Mcu5{=`u=|X#%lGEp4b2_4UN&Xz%-)KtW0F&{Z1oV3Df2F+eQvhbRJ64ALwa2VsJ6*AF>~g^`2fuI2@?ByubQS&=1RYjq9+1W`DhOR<0~0GP5&7BV~)Vu~?6-)Go<081iH$3e?t
z{~yfTzVn^T7qS2V03~!qSaf7zbY(hYa%Ew3WdJfTGBYhPFfB1QR53R?FgZFiH7hVM
zIxsLqYPRzL001R)MObuXVRU6WZEs|0W_bWIFfubOF)%GLHdHY;IxsmpGc_wPFgh?W
TH8&1V00000NkvXXu0mjfy342o
From e9f6836aa15ea5cb0d6633ae7b5a25191ec3ff54 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Sun, 22 Sep 2024 22:14:11 +0100
Subject: [PATCH 070/154] build(deps): bump actions/add-to-project from 1.0.1
to 1.0.2 (#4603)
Bumps [actions/add-to-project](https://github.com/actions/add-to-project) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/actions/add-to-project/releases)
- [Commits](https://github.com/actions/add-to-project/compare/v1.0.1...v1.0.2)
---
updated-dependencies:
- dependency-name: actions/add-to-project
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
.github/workflows/add-to-project.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/add-to-project.yml b/.github/workflows/add-to-project.yml
index fb092b649..e0b06990f 100644
--- a/.github/workflows/add-to-project.yml
+++ b/.github/workflows/add-to-project.yml
@@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Add to Project
- uses: actions/add-to-project@v1.0.1
+ uses: actions/add-to-project@v1.0.2
with:
project-url: https://github.com/orgs/GameServerManagers/projects/11
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}
From 608a2fb3c33e65387840c7c66d06f830fe87975d Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:26:36 +0100
Subject: [PATCH 071/154] Release v24.3.0
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 7726559cc..10f6e0990 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.2.4"
+modulesversion="v24.3.0"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 0bb918c0d..8c83cdc58 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.2.4"
+version="v24.3.0"
shortname="core"
gameservername="core"
commandname="CORE"
From 3fadfac2d18b2785b86c9e39df7a1cb2bccb3dfc Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:32:57 +0100
Subject: [PATCH 072/154] remove code that is not ready
---
lgsm/modules/alert_discord.sh | 10 ----------
1 file changed, 10 deletions(-)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index a447c498a..93eda8d5b 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -51,11 +51,6 @@ jsoninfo=$(
"name": "Hostname",
"value": "${HOSTNAME}",
"inline": true
- },
- {
- "name": "Is my Game Server Online?",
- "value": "https://ismygameserver.online/${querytype}/${alertip}:${queryport}",
- "inline": true
},
{
"name": "More info",
@@ -123,11 +118,6 @@ jsonnoinfo=$(
"value": "${HOSTNAME}",
"inline": true
},
- {
- "name": "Is my Game Server Online?",
- "value": "https://ismygameserver.online/${querytype}/${alertip}:${queryport}",
- "inline": true
- },
{
"name": "Server Time",
"value": "$(date)",
From d2bb7d1af654e828af7c6b2c698a86b992ac9754 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:38:01 +0100
Subject: [PATCH 073/154] fix: add check for npm
---
lgsm/modules/check_gamedig.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
index b1913cf87..70aeea41b 100644
--- a/lgsm/modules/check_gamedig.sh
+++ b/lgsm/modules/check_gamedig.sh
@@ -5,14 +5,14 @@
# Website: https://linuxgsm.com
# Description: Installs nodejs and gamedig
-if [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ] && [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
+if [ "$(command -v node)" ] && [ "$(command -v npm)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ] && [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
echo -e ""
echo -e "${bold}${lightyellow}Installing Gamedig${default}"
fn_script_log_info "Installing Gamedig"
cd "${lgsmdir}" || exit
curl -L -o package.json "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/package.json"
npm install
-elif [ "$(command -v node)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ]; then
+elif [ "$(command -v node)" ] && [ "$(command -v npm)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ]; then
cd "${lgsmdir}" || exit
curl -s -L -o package.json "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/package.json"
npm update > /dev/null 2>&1
From b510672e251f0fe03dd899b217eed8d85ec4dee6 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 22 Sep 2024 22:50:37 +0100
Subject: [PATCH 074/154] revert cp change
---
lgsm/modules/install_config.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 1517812c1..f4005c6f8 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -41,15 +41,15 @@ fn_default_config_remote() {
fn_script_log_info "Copying ${servercfg} config file."
if [ "${config}" == "${servercfgdefault}" ]; then
mkdir -p "${servercfgdir}"
- cp -v --update=none "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
+ cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
elif [ "${shortname}" == "arma3" ] && [ "${config}" == "${networkcfgdefault}" ]; then
mkdir -p "${servercfgdir}"
- cp -v --update=none "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
+ cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
elif [ "${shortname}" == "dst" ] && [ "${config}" == "${clustercfgdefault}" ]; then
- cp -v --update=none "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
+ cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
else
mkdir -p "${servercfgdir}"
- cp -v --update=none "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
+ cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
fi
done
fn_sleep_time
From aa4e4d9f947fbd13f13caa132828a9821dfdd95f Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 23 Sep 2024 23:31:24 +0100
Subject: [PATCH 075/154] chore: update gamedig version v5.1.3
---
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package.json b/package.json
index e40e99e55..7fa277dcc 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,6 @@
},
"homepage": "https://github.com/GameServerManagers/LinuxGSM#readme",
"dependencies": {
- "gamedig": "^5.1.1"
+ "gamedig": "^5.1.3"
}
}
From 975511fcd4be720530d2174494b116d0625f69e7 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 23 Sep 2024 23:57:25 +0100
Subject: [PATCH 076/154] fix: ensure lgsm/data refers to datadir variable
---
.../details-check-generate-matrix.sh | 2 +-
.../serverlist-validate-game-icons.sh | 2 +-
.github/workflows/serverlist-validate.sh | 4 +-
lgsm/modules/alert.sh | 2 +-
lgsm/modules/alert_discord.sh | 12 +--
lgsm/modules/alert_rocketchat.sh | 4 +-
lgsm/modules/alert_slack.sh | 4 +-
lgsm/modules/check_deps.sh | 4 +-
lgsm/modules/command_update_linuxgsm.sh | 10 +--
lgsm/modules/core_steamcmd.sh | 90 +++++++++----------
lgsm/modules/info_stats.sh | 4 +-
lgsm/modules/mods_core.sh | 2 +-
linuxgsm.sh | 2 +-
13 files changed, 71 insertions(+), 71 deletions(-)
diff --git a/.github/workflows/details-check-generate-matrix.sh b/.github/workflows/details-check-generate-matrix.sh
index bba9e8d5d..1f4bc1d53 100755
--- a/.github/workflows/details-check-generate-matrix.sh
+++ b/.github/workflows/details-check-generate-matrix.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/lgsm/data/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
+curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/${datadir}/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
echo -n "{" > "shortnamearray.json"
echo -n "\"include\":[" >> "shortnamearray.json"
diff --git a/.github/workflows/serverlist-validate-game-icons.sh b/.github/workflows/serverlist-validate-game-icons.sh
index ca41892c9..2fdb0ff8f 100755
--- a/.github/workflows/serverlist-validate-game-icons.sh
+++ b/.github/workflows/serverlist-validate-game-icons.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-cd "lgsm/data" || exit
+cd "${datadir}" || exit
echo ""
echo "Checking that all the game servers listed in serverlist.csv have a shortname-icon.png file"
diff --git a/.github/workflows/serverlist-validate.sh b/.github/workflows/serverlist-validate.sh
index 0c7634018..7d931372d 100755
--- a/.github/workflows/serverlist-validate.sh
+++ b/.github/workflows/serverlist-validate.sh
@@ -2,7 +2,7 @@
echo "Checking that all the game servers are listed in all csv files"
echo "this check will ensure serverlist.csv has the same number of lines (-2 lines) as the other csv files"
# count the number of lines in the serverlist.csv
-cd "lgsm/data" || exit
+cd "${datadir}" || exit
serverlistcount="$(tail -n +2 serverlist.csv | wc -l)"
echo "serverlistcount: $serverlistcount"
# get list of all csv files starting with ubunutu debian centos
@@ -19,7 +19,7 @@ for csv in $csvlist; do
fi
done
-# Compare all game servers listed in serverlist.csv to $shortname-icon.png files in lgsm/data/gameicons
+# Compare all game servers listed in serverlist.csv to $shortname-icon.png files in ${datadir}/gameicons
# if the game server is listed in serverlist.csv then it will have a $shortname-icon.png file
# loop though shortname in serverlist.csv
diff --git a/lgsm/modules/alert.sh b/lgsm/modules/alert.sh
index f2698e3b7..814799e80 100644
--- a/lgsm/modules/alert.sh
+++ b/lgsm/modules/alert.sh
@@ -198,7 +198,7 @@ fn_alert_info() {
}
# Images
-alerticon="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/gameicons/${shortname}-icon.png"
+alerticon="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/gameicons/${shortname}-icon.png"
if [ "${alert}" == "permissions" ]; then
fn_alert_permissions
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 93eda8d5b..6f362b4f7 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -11,14 +11,14 @@ jsoninfo=$(
cat << EOF
{
"username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"file": "content",
"embeds": [
{
"author": {
"name": "LinuxGSM Alert",
"url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg"
},
"title": "${alerttitle}",
"url": "",
@@ -64,7 +64,7 @@ jsoninfo=$(
}
],
"footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"text": "Sent by LinuxGSM ${version}"
}
}
@@ -77,14 +77,14 @@ jsonnoinfo=$(
cat << EOF
{
"username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"file": "content",
"embeds": [
{
"author": {
"name": "LinuxGSM Alert",
"url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg"
},
"title": "${alerttitle}",
"url": "",
@@ -125,7 +125,7 @@ jsonnoinfo=$(
}
],
"footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"text": "Sent by LinuxGSM ${version}"
}
}
diff --git a/lgsm/modules/alert_rocketchat.sh b/lgsm/modules/alert_rocketchat.sh
index bff2c6a0b..d0077c5f9 100644
--- a/lgsm/modules/alert_rocketchat.sh
+++ b/lgsm/modules/alert_rocketchat.sh
@@ -18,7 +18,7 @@ jsoninfo=$(
"color": "${alertcolourhex}",
"author_name": "LinuxGSM Alert",
"author_link": "https://linuxgsm.com",
- "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"thumb_url": "${alerticon}",
"text": "",
"fields": [
@@ -75,7 +75,7 @@ jsonnoinfo=$(
"color": "${alertcolourhex}",
"author_name": "LinuxGSM Alert",
"author_link": "https://linuxgsm.com",
- "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"thumb_url": "${alerticon}",
"text": "",
"fields": [
diff --git a/lgsm/modules/alert_slack.sh b/lgsm/modules/alert_slack.sh
index 58dc54772..f6c6e503c 100644
--- a/lgsm/modules/alert_slack.sh
+++ b/lgsm/modules/alert_slack.sh
@@ -70,7 +70,7 @@ jsonnoinfo=$(
"elements": [
{
"type": "image",
- "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"alt_text": "LinuxGSM icon"
},
{
@@ -157,7 +157,7 @@ jsoninfo=$(
"elements": [
{
"type": "image",
- "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
"alt_text": "LinuxGSM icon"
},
{
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index 35145a11d..67e0c8ba7 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -358,9 +358,9 @@ info_distro.sh
if [ ! -f "${tmpdir}/dependency-no-check.tmp" ] && [ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
# Check that the distro dependency csv file exists.
- fn_check_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv"
+ fn_check_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv"
if [ -n "${checkflag}" ] && [ "${checkflag}" == "0" ]; then
- fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "lgsm/data" "chmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv" "${datadir}" "chmodx" "norun" "noforce" "nohash"
fi
fi
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index e6e5e711d..27adf9b71 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -160,9 +160,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
if [ "${remotereponame}" == "GitHub" ]; then
- curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv" 1> /dev/null
else
- curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -172,16 +172,16 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv"))
else
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv"))
fi
if [ "${config_file_diff}" != "" ]; then
fn_print_update_eol_nl
fn_script_log_update "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
rm -f "${datadir:?}/${distroid}-${distroversioncsv}.csv"
- fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "${datadir}" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv" "${datadir}" "nochmodx" "norun" "noforce" "nohash"
else
fn_print_ok_eol_nl
fn_script_log_pass "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
diff --git a/lgsm/modules/core_steamcmd.sh b/lgsm/modules/core_steamcmd.sh
index 552ff1905..e08c921dd 100644
--- a/lgsm/modules/core_steamcmd.sh
+++ b/lgsm/modules/core_steamcmd.sh
@@ -364,63 +364,63 @@ fn_check_steamcmd_appmanifest() {
fn_print_info_nl "Forcing update to correct issue"
fn_script_log_info "Forcing update to correct issue"
if [ "${shortname}" == "ahl" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "bb" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "cscz" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_80.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_80.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "css" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "dmc" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_40.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_40.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "dod" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_30.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_30.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "hldm" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "ns" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "opfor" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_50.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_50.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "ricochet" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_60.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_60.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "tfc" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_20.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_20.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "ts" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
elif [ "${shortname}" == "vs" ]; then
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
- fn_fetch_file_github "lgsm/data/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_90.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_10.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "${datadir}/appmanifest/${shortname}" "appmanifest_70.acf" "${serverfiles}/steamapps" "nochmodx" "norun" "noforce" "nohash"
fi
fn_dl_steamcmd
fi
diff --git a/lgsm/modules/info_stats.sh b/lgsm/modules/info_stats.sh
index c8a96552a..b995d0e3b 100644
--- a/lgsm/modules/info_stats.sh
+++ b/lgsm/modules/info_stats.sh
@@ -23,10 +23,10 @@ fi
if [ ! -f "${datadir}/uuid-${selfname}.txt" ] || [ ! -f "${datadir}/uuid-install.txt" ]; then
# download dictionary words
if [ ! -f "${datadir}/name-left.csv" ]; then
- fn_fetch_file_github "lgsm/data" "name-left.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
+ fn_fetch_file_github "${datadir}" "name-left.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
fi
if [ ! -f "${datadir}/name-right.csv" ]; then
- fn_fetch_file_github "lgsm/data" "name-right.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
+ fn_fetch_file_github "${datadir}" "name-right.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
fi
# generate instance uuid
diff --git a/lgsm/modules/mods_core.sh b/lgsm/modules/mods_core.sh
index aa24d903f..47bef26f7 100644
--- a/lgsm/modules/mods_core.sh
+++ b/lgsm/modules/mods_core.sh
@@ -412,7 +412,7 @@ fn_create_mods_dir() {
fi
fi
- # Create lgsm/data/${modsinstalledlist}.
+ # Create ${datadir}/${modsinstalledlist}.
if [ ! -f "${modsinstalledlistfullpath}" ]; then
touch "${modsinstalledlistfullpath}"
fn_script_log_info "Created ${modsinstalledlistfullpath}"
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 8c83cdc58..047678875 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -345,7 +345,7 @@ fi
# LinuxGSM installer mode.
if [ "${shortname}" == "core" ]; then
# Download the latest serverlist. This is the complete list of all supported servers.
- fn_bootstrap_fetch_file_github "lgsm/data" "serverlist.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nomd5"
+ fn_bootstrap_fetch_file_github "${datadir}" "serverlist.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nomd5"
if [ ! -f "${serverlist}" ]; then
echo -e "[ FAIL ] serverlist.csv could not be loaded."
exit 1
From 56e422be452ef31e5d7a50dc5d86e945642d3afb Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 24 Sep 2024 22:06:20 +0100
Subject: [PATCH 077/154] feat: upgrade docker containers to ubuntu 24.04
(#4669)
---
lgsm/data/serverlist.csv | 268 +++++++++++++++++++--------------------
1 file changed, 134 insertions(+), 134 deletions(-)
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 8b408f84f..0f350b55d 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -1,138 +1,138 @@
shortname,gameservername,gamename,os
-ac,acserver,Assetto Corsa,ubuntu-22.04
-ahl,ahlserver,Action Half-Life,ubuntu-22.04
-ahl2,ahl2server,Action: Source,ubuntu-20.04
-ark,arkserver,ARK: Survival Evolved,ubuntu-22.04
-arma3,arma3server,ARMA 3,ubuntu-22.04
-armar,armarserver,Arma Reforger,ubuntu-20.04
-ats,atsserver,American Truck Simulator,ubuntu-22.04
-av,avserver,Avorion,ubuntu-22.04
-bb,bbserver,BrainBread,ubuntu-22.04
-bb2,bb2server,BrainBread 2,ubuntu-22.04
-bd,bdserver,Base Defense,ubuntu-22.04
-bf1942,bf1942server,Battlefield 1942,ubuntu-22.04
-bfv,bfvserver,Battlefield: Vietnam,ubuntu-22.04
-bmdm,bmdmserver,Black Mesa: Deathmatch,ubuntu-22.04
-bo,boserver,Ballistic Overkill,ubuntu-22.04
-bs,bsserver,Blade Symphony,ubuntu-22.04
-bt,btserver,Barotrauma,ubuntu-22.04
+ac,acserver,Assetto Corsa,ubuntu-24.04
+ahl,ahlserver,Action Half-Life,ubuntu-24.04
+ahl2,ahl2server,Action: Source,ubuntu-24.04
+ark,arkserver,ARK: Survival Evolved,ubuntu-24.04
+arma3,arma3server,ARMA 3,ubuntu-24.04
+armar,armarserver,Arma Reforger,ubuntu-24.04
+ats,atsserver,American Truck Simulator,ubuntu-24.04
+av,avserver,Avorion,ubuntu-24.04
+bb,bbserver,BrainBread,ubuntu-24.04
+bb2,bb2server,BrainBread 2,ubuntu-24.04
+bd,bdserver,Base Defense,ubuntu-24.04
+bf1942,bf1942server,Battlefield 1942,ubuntu-24.04
+bfv,bfvserver,Battlefield: Vietnam,ubuntu-24.04
+bmdm,bmdmserver,Black Mesa: Deathmatch,ubuntu-24.04
+bo,boserver,Ballistic Overkill,ubuntu-24.04
+bs,bsserver,Blade Symphony,ubuntu-24.04
+bt,btserver,Barotrauma,ubuntu-24.04
btl,btlserver,BATTALION: Legacy,ubuntu-20.04
-cc,ccserver,Codename CURE,ubuntu-22.04
-ck,ckserver,Core Keeper,ubuntu-22.04
-cmw,cmwserver,Chivalry: Medieval Warfare,ubuntu-22.04
-cod,codserver,Call of Duty,ubuntu-22.04
-cod2,cod2server,Call of Duty 2,ubuntu-22.04
-cod4,cod4server,Call of Duty 4,ubuntu-22.04
-coduo,coduoserver,Call of Duty: United Offensive,ubuntu-22.04
-codwaw,codwawserver,Call of Duty: World at War,ubuntu-22.04
-col,colserver,Colony Survival,ubuntu-22.04
-cs,csserver,Counter-Strike 1.6,ubuntu-22.04
-cs2,cs2server,Counter-Strike 2,ubuntu-22.04
-cscz,csczserver,Counter-Strike: Condition Zero,ubuntu-22.04
-csgo,csgoserver,Counter-Strike: Global Offensive,ubuntu-22.04
-css,cssserver,Counter-Strike: Source,ubuntu-22.04
-ct,ctserver,Craftopia,ubuntu-22.04
-dab,dabserver,Double Action: Boogaloo,ubuntu-22.04
-dayz,dayzserver,DayZ,ubuntu-22.04
-dmc,dmcserver,Deathmatch Classic,ubuntu-22.04
-dod,dodserver,Day of Defeat,ubuntu-22.04
-dodr,dodrserver,Day of Dragons,ubuntu-22.04
-dods,dodsserver,Day of Defeat: Source,ubuntu-22.04
-doi,doiserver,Day of Infamy,ubuntu-22.04
-dst,dstserver,Don't Starve Together,ubuntu-22.04
-dys,dysserver,Dystopia,ubuntu-22.04
-eco,ecoserver,Eco,ubuntu-22.04
-em,emserver,Empires Mod,ubuntu-22.04
-etl,etlserver,ET: Legacy,ubuntu-22.04
-ets2,ets2server,Euro Truck Simulator 2,ubuntu-22.04
-fctr,fctrserver,Factorio,ubuntu-22.04
-fof,fofserver,Fistful of Frags,ubuntu-22.04
-gmod,gmodserver,Garrys Mod,ubuntu-22.04
-hcu,hcuserver,HYPERCHARGE: Unboxed,ubuntu-22.04
-hl2dm,hl2dmserver,Half-Life 2: Deathmatch,ubuntu-22.04
-hldm,hldmserver,Half-Life: Deathmatch,ubuntu-22.04
-hldms,hldmsserver,Half-Life Deathmatch: Source,ubuntu-22.04
-hw,hwserver,Hurtworld,ubuntu-22.04
-hz,hzserver,Humanitz,ubuntu-22.04
-ins,insserver,Insurgency,ubuntu-22.04
-inss,inssserver,Insurgency: Sandstorm,ubuntu-22.04
-ios,iosserver,IOSoccer,ubuntu-22.04
-jc2,jc2server,Just Cause 2,ubuntu-22.04
-jc3,jc3server,Just Cause 3,ubuntu-22.04
-jk2,jk2server,Jedi Knight II: Jedi Outcast,ubuntu-22.04
-kf,kfserver,Killing Floor,ubuntu-22.04
-kf2,kf2server,Killing Floor 2,ubuntu-22.04
-l4d,l4dserver,Left 4 Dead,ubuntu-22.04
-l4d2,l4d2server,Left 4 Dead 2,ubuntu-22.04
-mc,mcserver,Minecraft,ubuntu-22.04
-mcb,mcbserver,Minecraft Bedrock,ubuntu-22.04
-mh,mhserver,MORDHAU,ubuntu-22.04
-mohaa,mohaaserver,Medal of Honor: Allied Assault,ubuntu-22.04
-mta,mtaserver,Multi Theft Auto,ubuntu-22.04
-nd,ndserver,Nuclear Dawn,ubuntu-22.04
-nec,necserver,Necesse,ubuntu-22.04
-nmrih,nmrihserver,No More Room in Hell,ubuntu-22.04
-ns,nsserver,Natural Selection,ubuntu-22.04
-ns2,ns2server,Natural Selection 2,ubuntu-22.04
-ns2c,ns2cserver,NS2: Combat,ubuntu-22.04
-ohd,ohdserver,Operation: Harsh Doorstop,ubuntu-22.04
+cc,ccserver,Codename CURE,ubuntu-24.04
+ck,ckserver,Core Keeper,ubuntu-24.04
+cmw,cmwserver,Chivalry: Medieval Warfare,ubuntu-24.04
+cod,codserver,Call of Duty,ubuntu-24.04
+cod2,cod2server,Call of Duty 2,ubuntu-24.04
+cod4,cod4server,Call of Duty 4,ubuntu-24.04
+coduo,coduoserver,Call of Duty: United Offensive,ubuntu-24.04
+codwaw,codwawserver,Call of Duty: World at War,ubuntu-24.04
+col,colserver,Colony Survival,ubuntu-24.04
+cs,csserver,Counter-Strike 1.6,ubuntu-24.04
+cs2,cs2server,Counter-Strike 2,ubuntu-24.04
+cscz,csczserver,Counter-Strike: Condition Zero,ubuntu-24.04
+csgo,csgoserver,Counter-Strike: Global Offensive,ubuntu-24.04
+css,cssserver,Counter-Strike: Source,ubuntu-24.04
+ct,ctserver,Craftopia,ubuntu-24.04
+dab,dabserver,Double Action: Boogaloo,ubuntu-24.04
+dayz,dayzserver,DayZ,ubuntu-24.04
+dmc,dmcserver,Deathmatch Classic,ubuntu-24.04
+dod,dodserver,Day of Defeat,ubuntu-24.04
+dodr,dodrserver,Day of Dragons,ubuntu-24.04
+dods,dodsserver,Day of Defeat: Source,ubuntu-24.04
+doi,doiserver,Day of Infamy,ubuntu-24.04
+dst,dstserver,Don't Starve Together,ubuntu-24.04
+dys,dysserver,Dystopia,ubuntu-24.04
+eco,ecoserver,Eco,ubuntu-24.04
+em,emserver,Empires Mod,ubuntu-24.04
+etl,etlserver,ET: Legacy,ubuntu-24.04
+ets2,ets2server,Euro Truck Simulator 2,ubuntu-24.04
+fctr,fctrserver,Factorio,ubuntu-24.04
+fof,fofserver,Fistful of Frags,ubuntu-24.04
+gmod,gmodserver,Garrys Mod,ubuntu-24.04
+hcu,hcuserver,HYPERCHARGE: Unboxed,ubuntu-24.04
+hl2dm,hl2dmserver,Half-Life 2: Deathmatch,ubuntu-24.04
+hldm,hldmserver,Half-Life: Deathmatch,ubuntu-24.04
+hldms,hldmsserver,Half-Life Deathmatch: Source,ubuntu-24.04
+hw,hwserver,Hurtworld,ubuntu-24.04
+hz,hzserver,Humanitz,ubuntu-24.04
+ins,insserver,Insurgency,ubuntu-24.04
+inss,inssserver,Insurgency: Sandstorm,ubuntu-24.04
+ios,iosserver,IOSoccer,ubuntu-24.04
+jc2,jc2server,Just Cause 2,ubuntu-24.04
+jc3,jc3server,Just Cause 3,ubuntu-24.04
+jk2,jk2server,Jedi Knight II: Jedi Outcast,ubuntu-24.04
+kf,kfserver,Killing Floor,ubuntu-24.04
+kf2,kf2server,Killing Floor 2,ubuntu-24.04
+l4d,l4dserver,Left 4 Dead,ubuntu-24.04
+l4d2,l4d2server,Left 4 Dead 2,ubuntu-24.04
+mc,mcserver,Minecraft,ubuntu-24.04
+mcb,mcbserver,Minecraft Bedrock,ubuntu-24.04
+mh,mhserver,MORDHAU,ubuntu-24.04
+mohaa,mohaaserver,Medal of Honor: Allied Assault,ubuntu-24.04
+mta,mtaserver,Multi Theft Auto,ubuntu-24.04
+nd,ndserver,Nuclear Dawn,ubuntu-24.04
+nec,necserver,Necesse,ubuntu-24.04
+nmrih,nmrihserver,No More Room in Hell,ubuntu-24.04
+ns,nsserver,Natural Selection,ubuntu-24.04
+ns2,ns2server,Natural Selection 2,ubuntu-24.04
+ns2c,ns2cserver,NS2: Combat,ubuntu-24.04
+ohd,ohdserver,Operation: Harsh Doorstop,ubuntu-24.04
onset,onsetserver,Onset,ubuntu-20.04
-opfor,opforserver,Opposing Force,ubuntu-22.04
-pc,pcserver,Project Cars,ubuntu-22.04
-pc2,pc2server,Project Cars 2,ubuntu-22.04
-pmc,pmcserver,PaperMC,ubuntu-22.04
-ps,psserver,Post Scriptum,ubuntu-22.04
-pvkii,pvkiiserver,Pirates Vikings & Knights II,ubuntu-22.04
-pvr,pvrserver,Pavlov VR,ubuntu-22.04
-pw,pwserver,Palworld,ubuntu-22.04
-pz,pzserver,Project Zomboid,ubuntu-22.04
-q2,q2server,Quake 2,ubuntu-22.04
-q3,q3server,Quake 3: Arena,ubuntu-22.04
-q4,q4server,Quake 4,ubuntu-22.04
-ql,qlserver,Quake Live,ubuntu-22.04
-qw,qwserver,Quake World,ubuntu-22.04
-ricochet,ricochetserver,Ricochet,ubuntu-22.04
-ro,roserver,Red Orchestra: Ostfront 41-45,ubuntu-22.04
-rtcw,rtcwserver,Return to Castle Wolfenstein,ubuntu-22.04
-rust,rustserver,Rust,ubuntu-22.04
-rw,rwserver,Rising World,ubuntu-22.04
-samp,sampserver,San Andreas Multiplayer,ubuntu-22.04
-sb,sbserver,Starbound,ubuntu-22.04
-sbots,sbotsserver,StickyBots,ubuntu-22.04
-scpsl,scpslserver,SCP: Secret Laboratory,ubuntu-22.04
-scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod,ubuntu-22.04
-sdtd,sdtdserver,7 Days to Die,ubuntu-22.04
-sf,sfserver,Satisfactory,ubuntu-22.04
-sfc,sfcserver,SourceForts Classic,ubuntu-22.04
-sm,smserver,Soulmask,ubuntu-22.04
-sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-22.04
-sol,solserver,Soldat,ubuntu-22.04
-squad,squadserver,Squad,ubuntu-22.04
-st,stserver,Stationeers,ubuntu-22.04
-stn,stnserver,Survive the Nights,ubuntu-22.04
+opfor,opforserver,Opposing Force,ubuntu-24.04
+pc,pcserver,Project Cars,ubuntu-24.04
+pc2,pc2server,Project Cars 2,ubuntu-24.04
+pmc,pmcserver,PaperMC,ubuntu-24.04
+ps,psserver,Post Scriptum,ubuntu-24.04
+pvkii,pvkiiserver,Pirates Vikings & Knights II,ubuntu-24.04
+pvr,pvrserver,Pavlov VR,ubuntu-24.04
+pw,pwserver,Palworld,ubuntu-24.04
+pz,pzserver,Project Zomboid,ubuntu-24.04
+q2,q2server,Quake 2,ubuntu-24.04
+q3,q3server,Quake 3: Arena,ubuntu-24.04
+q4,q4server,Quake 4,ubuntu-24.04
+ql,qlserver,Quake Live,ubuntu-24.04
+qw,qwserver,Quake World,ubuntu-24.04
+ricochet,ricochetserver,Ricochet,ubuntu-24.04
+ro,roserver,Red Orchestra: Ostfront 41-45,ubuntu-24.04
+rtcw,rtcwserver,Return to Castle Wolfenstein,ubuntu-24.04
+rust,rustserver,Rust,ubuntu-24.04
+rw,rwserver,Rising World,ubuntu-24.04
+samp,sampserver,San Andreas Multiplayer,ubuntu-24.04
+sb,sbserver,Starbound,ubuntu-24.04
+sbots,sbotsserver,StickyBots,ubuntu-24.04
+scpsl,scpslserver,SCP: Secret Laboratory,ubuntu-24.04
+scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod,ubuntu-24.04
+sdtd,sdtdserver,7 Days to Die,ubuntu-24.04
+sf,sfserver,Satisfactory,ubuntu-24.04
+sfc,sfcserver,SourceForts Classic,ubuntu-24.04
+sm,smserver,Soulmask,ubuntu-24.04
+sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-24.04
+sol,solserver,Soldat,ubuntu-24.04
+squad,squadserver,Squad,ubuntu-24.04
+st,stserver,Stationeers,ubuntu-24.04
+stn,stnserver,Survive the Nights,ubuntu-24.04
sven,svenserver,Sven Co-op,ubuntu-20.04
-terraria,terrariaserver,Terraria,ubuntu-22.04
-tf,tfserver,The Front,ubuntu-22.04
-tf2,tf2server,Team Fortress 2,ubuntu-22.04
-tfc,tfcserver,Team Fortress Classic,ubuntu-22.04
-ti,tiserver,The Isle,ubuntu-22.04
-ts,tsserver,The Specialists,ubuntu-22.04
-ts3,ts3server,Teamspeak 3,ubuntu-22.04
-tu,tuserver,Tower Unite,ubuntu-22.04
-tw,twserver,Teeworlds,ubuntu-22.04
-unt,untserver,Unturned,ubuntu-22.04
-ut,utserver,Unreal Tournament,ubuntu-22.04
-ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-22.04
-ut3,ut3server,Unreal Tournament 3,ubuntu-22.04
-ut99,ut99server,Unreal Tournament 99,ubuntu-22.04
-vh,vhserver,Valheim,ubuntu-22.04
-vints,vintsserver,Vintage Story,ubuntu-22.04
-vpmc,vpmcserver,Velocity Proxy MC,ubuntu-22.04
-vs,vsserver,Vampire Slayer,ubuntu-22.04
-wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-22.04
-wf,wfserver,Warfork,ubuntu-22.04
-wmc,wmcserver,WaterfallMC,ubuntu-22.04
-wurm,wurmserver,Wurm Unlimited,ubuntu-22.04
-xnt,xntserver,Xonotic,ubuntu-22.04
-zmr,zmrserver,Zombie Master: Reborn,ubuntu-22.04
-zps,zpsserver,Zombie Panic! Source,ubuntu-22.04
+terraria,terrariaserver,Terraria,ubuntu-24.04
+tf,tfserver,The Front,ubuntu-24.04
+tf2,tf2server,Team Fortress 2,ubuntu-24.04
+tfc,tfcserver,Team Fortress Classic,ubuntu-24.04
+ti,tiserver,The Isle,ubuntu-24.04
+ts,tsserver,The Specialists,ubuntu-24.04
+ts3,ts3server,Teamspeak 3,ubuntu-24.04
+tu,tuserver,Tower Unite,ubuntu-24.04
+tw,twserver,Teeworlds,ubuntu-24.04
+unt,untserver,Unturned,ubuntu-24.04
+ut,utserver,Unreal Tournament,ubuntu-24.04
+ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-24.04
+ut3,ut3server,Unreal Tournament 3,ubuntu-24.04
+ut99,ut99server,Unreal Tournament 99,ubuntu-24.04
+vh,vhserver,Valheim,ubuntu-24.04
+vints,vintsserver,Vintage Story,ubuntu-24.04
+vpmc,vpmcserver,Velocity Proxy MC,ubuntu-24.04
+vs,vsserver,Vampire Slayer,ubuntu-24.04
+wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-24.04
+wf,wfserver,Warfork,ubuntu-24.04
+wmc,wmcserver,WaterfallMC,ubuntu-24.04
+wurm,wurmserver,Wurm Unlimited,ubuntu-24.04
+xnt,xntserver,Xonotic,ubuntu-24.04
+zmr,zmrserver,Zombie Master: Reborn,ubuntu-24.04
+zps,zpsserver,Zombie Panic! Source,ubuntu-24.04
From 72bb39ec049331adb9648bd74eb902858e5583ce Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 24 Sep 2024 22:38:44 +0100
Subject: [PATCH 078/154] fix: revert urls to correct data dir
---
.github/workflows/details-check-generate-matrix.sh | 2 +-
lgsm/modules/alert.sh | 2 +-
lgsm/modules/alert_discord.sh | 12 ++++++------
lgsm/modules/alert_rocketchat.sh | 4 ++--
lgsm/modules/alert_slack.sh | 4 ++--
lgsm/modules/check_deps.sh | 4 ++--
lgsm/modules/command_update_linuxgsm.sh | 8 ++++----
7 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/.github/workflows/details-check-generate-matrix.sh b/.github/workflows/details-check-generate-matrix.sh
index 1f4bc1d53..bba9e8d5d 100755
--- a/.github/workflows/details-check-generate-matrix.sh
+++ b/.github/workflows/details-check-generate-matrix.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/${datadir}/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
+curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/${GITHUB_REF#refs/heads/}/lgsm/data/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
echo -n "{" > "shortnamearray.json"
echo -n "\"include\":[" >> "shortnamearray.json"
diff --git a/lgsm/modules/alert.sh b/lgsm/modules/alert.sh
index 814799e80..f2698e3b7 100644
--- a/lgsm/modules/alert.sh
+++ b/lgsm/modules/alert.sh
@@ -198,7 +198,7 @@ fn_alert_info() {
}
# Images
-alerticon="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/gameicons/${shortname}-icon.png"
+alerticon="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/gameicons/${shortname}-icon.png"
if [ "${alert}" == "permissions" ]; then
fn_alert_permissions
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 6f362b4f7..93eda8d5b 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -11,14 +11,14 @@ jsoninfo=$(
cat << EOF
{
"username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"file": "content",
"embeds": [
{
"author": {
"name": "LinuxGSM Alert",
"url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg"
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
},
"title": "${alerttitle}",
"url": "",
@@ -64,7 +64,7 @@ jsoninfo=$(
}
],
"footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"text": "Sent by LinuxGSM ${version}"
}
}
@@ -77,14 +77,14 @@ jsonnoinfo=$(
cat << EOF
{
"username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"file": "content",
"embeds": [
{
"author": {
"name": "LinuxGSM Alert",
"url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg"
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
},
"title": "${alerttitle}",
"url": "",
@@ -125,7 +125,7 @@ jsonnoinfo=$(
}
],
"footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"text": "Sent by LinuxGSM ${version}"
}
}
diff --git a/lgsm/modules/alert_rocketchat.sh b/lgsm/modules/alert_rocketchat.sh
index d0077c5f9..bff2c6a0b 100644
--- a/lgsm/modules/alert_rocketchat.sh
+++ b/lgsm/modules/alert_rocketchat.sh
@@ -18,7 +18,7 @@ jsoninfo=$(
"color": "${alertcolourhex}",
"author_name": "LinuxGSM Alert",
"author_link": "https://linuxgsm.com",
- "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"thumb_url": "${alerticon}",
"text": "",
"fields": [
@@ -75,7 +75,7 @@ jsonnoinfo=$(
"color": "${alertcolourhex}",
"author_name": "LinuxGSM Alert",
"author_link": "https://linuxgsm.com",
- "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "author_icon": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"thumb_url": "${alerticon}",
"text": "",
"fields": [
diff --git a/lgsm/modules/alert_slack.sh b/lgsm/modules/alert_slack.sh
index f6c6e503c..58dc54772 100644
--- a/lgsm/modules/alert_slack.sh
+++ b/lgsm/modules/alert_slack.sh
@@ -70,7 +70,7 @@ jsonnoinfo=$(
"elements": [
{
"type": "image",
- "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"alt_text": "LinuxGSM icon"
},
{
@@ -157,7 +157,7 @@ jsoninfo=$(
"elements": [
{
"type": "image",
- "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/alert_discord_logo.jpg",
+ "image_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"alt_text": "LinuxGSM icon"
},
{
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index 67e0c8ba7..ea4e82b81 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -358,9 +358,9 @@ info_distro.sh
if [ ! -f "${tmpdir}/dependency-no-check.tmp" ] && [ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
# Check that the distro dependency csv file exists.
- fn_check_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv"
+ fn_check_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv"
if [ -n "${checkflag}" ] && [ "${checkflag}" == "0" ]; then
- fn_fetch_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv" "${datadir}" "chmodx" "norun" "noforce" "nohash"
+ fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "${datadir}" "chmodx" "norun" "noforce" "nohash"
fi
fi
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index 27adf9b71..eb4226ab8 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -160,9 +160,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
if [ "${remotereponame}" == "GitHub" ]; then
- curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
else
- curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv" 1> /dev/null
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
fi
if [ $? != "0" ]; then
fn_print_fail_eol_nl
@@ -172,9 +172,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fi
if [ "${remotereponame}" == "GitHub" ]; then
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
else
- config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${datadir}/${distroid}-${distroversioncsv}.csv"))
+ config_file_diff=$(diff "${datadir}/${distroid}-${distroversioncsv}.csv" <(curl ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
fi
if [ "${config_file_diff}" != "" ]; then
From 108dd27c3280ea164e52e3111a17ad6e0b163080 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 24 Sep 2024 23:38:13 +0100
Subject: [PATCH 079/154] feat: add arch check to prevent arm devices from
working as not supported
---
lgsm/modules/check_system_requirements.sh | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/check_system_requirements.sh b/lgsm/modules/check_system_requirements.sh
index a7314a0d8..7dd0551a5 100644
--- a/lgsm/modules/check_system_requirements.sh
+++ b/lgsm/modules/check_system_requirements.sh
@@ -9,7 +9,11 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
info_distro.sh
-# RAM requirements in gigabytes for each game or engine.
+if [[ "${arch}" != "x86_64" && "${arch}" != "i386" && "${arch}" != "i686" ]]; then
+ echo -e "${red}Error: Only x86 type architectures are supported. Detected architecture: ${arch}${default}"
+ fn_script_log_error "Only x86 type architectures are supported. Detected architecture: ${arch}"
+ core_exit.sh
+fi
if [ "${shortname}" == "ark" ]; then
ramrequirementgb="7"
From 5c31f3344624998b022d54140cbbb6f226240165 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 25 Sep 2024 11:37:16 +0100
Subject: [PATCH 080/154] fix: change exitcode to 0 if dependency install was
successful
---
lgsm/modules/check_deps.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index ea4e82b81..d7df071d3 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -195,9 +195,10 @@ fn_install_missing_deps() {
fi
autodepinstall="$?"
- # If auto install passes remove steamcmd install failure.
+ # If auto install passes, remove steamcmd install failure and set exit code to 0.
if [ "${autodepinstall}" == "0" ]; then
unset steamcmdfail
+ exitcode=0
fi
fi
From d4ffe395051d35ff8283d4bbfee3c9e05d1c42b8 Mon Sep 17 00:00:00 2001
From: Armin <50357737+PlayMTL@users.noreply.github.com>
Date: Sat, 28 Sep 2024 14:16:03 +0200
Subject: [PATCH 081/154] fix(mcbserver): Wrong download url for serverfiles
(#4675)
* fix(mcbserver): update download url
* change(core_dl/fn_fetch_file): add useragent to fix mcbedrock download
---
lgsm/modules/core_dl.sh | 2 +-
lgsm/modules/update_mcb.sh | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index dde24d9da..68d0cf576 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -393,7 +393,7 @@ fn_fetch_file() {
fi
# Trap will remove part downloaded files if canceled.
trap fn_fetch_trap INT
- curlcmd=(curl --connect-timeout 3 --fail -L -o "${local_filedir}/${local_filename}" --retry 2)
+ curlcmd=(curl --connect-timeout 3 --fail -L -o "${local_filedir}/${local_filename}" --retry 2 -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randomint}.212 Safari/537.36")
# if is large file show progress, else be silent
local exitcode=""
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index 55b3586fd..65ebc2546 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -53,11 +53,11 @@ fn_update_remotebuild() {
randomint=$(tr -dc 0-9 < /dev/urandom 2> /dev/null | head -c 4 | xargs)
# Get remote build info.
if [ "${mcversion}" == "latest" ]; then
- remotebuildversion=$(curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -Ls -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randomint}.212 Safari/537.36" "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://minecraft.azureedge.net/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
+ remotebuildversion=$(curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -Ls -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randomint}.212 Safari/537.36" "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://www.minecraft.net/bedrockdedicatedserver/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
else
remotebuildversion="${mcversion}"
fi
- remotebuildurl="https://minecraft.azureedge.net/bin-linux/bedrock-server-${remotebuildversion}.zip"
+ remotebuildurl="https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-${remotebuildversion}.zip"
if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
From 764032b0502fc5f859ef684b6afcfc80daa19be5 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 28 Sep 2024 13:20:31 +0100
Subject: [PATCH 082/154] Release v24.3.1
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 10f6e0990..d040cf942 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.3.0"
+modulesversion="v24.3.1"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 8c83cdc58..b30ed57e8 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.3.0"
+version="v24.3.1"
shortname="core"
gameservername="core"
commandname="CORE"
From 3335ca53a052caae4e637934fd0e7e708110d159 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 28 Sep 2024 13:55:10 +0100
Subject: [PATCH 083/154] fix: datadir bug
---
linuxgsm.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linuxgsm.sh b/linuxgsm.sh
index c02d3f849..b30ed57e8 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -345,7 +345,7 @@ fi
# LinuxGSM installer mode.
if [ "${shortname}" == "core" ]; then
# Download the latest serverlist. This is the complete list of all supported servers.
- fn_bootstrap_fetch_file_github "${datadir}" "serverlist.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nomd5"
+ fn_bootstrap_fetch_file_github "lgsm/data" "serverlist.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nomd5"
if [ ! -f "${serverlist}" ]; then
echo -e "[ FAIL ] serverlist.csv could not be loaded."
exit 1
From e5fabecdad2f0d2e1f1cd6a295288eac12d4f8c0 Mon Sep 17 00:00:00 2001
From: Emmanuel Ferdman
Date: Sat, 28 Sep 2024 23:35:41 +0300
Subject: [PATCH 084/154] fix: update license reference (#4678)
Signed-off-by: Emmanuel Ferdman
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index db89b8548..4075a4e3d 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
-
+
[LinuxGSM](https://linuxgsm.com) is the command-line tool for quick, simple deployment and management of Linux dedicated game servers.
From cac8b81a57a0e9fecba3eb7876803d5ca48ec8b6 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 6 Oct 2024 17:05:49 +0100
Subject: [PATCH 085/154] fix(cs2): add gslt variable
---
lgsm/config-default/config-lgsm/cs2server/_default.cfg | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/lgsm/config-default/config-lgsm/cs2server/_default.cfg b/lgsm/config-default/config-lgsm/cs2server/_default.cfg
index a2df48244..dca9194f4 100644
--- a/lgsm/config-default/config-lgsm/cs2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/cs2server/_default.cfg
@@ -15,6 +15,11 @@ port="27015"
maxplayers="16"
wsapikey=""
+## Game Server Login Token (GSLT): Required
+# GSLT is required for running a public server.
+# More info: https://docs.linuxgsm.com/steamcmd/gslt
+gslt=""
+
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-dedicated -ip ${ip} -port ${port} -maxplayers ${maxplayers} -authkey ${wsapikey} +exec ${selfname}.cfg"
From 53a7c70560b7ddb915b69c30cdd68b801962d53f Mon Sep 17 00:00:00 2001
From: Alex Linde <38871119+Amlinde@users.noreply.github.com>
Date: Sat, 26 Oct 2024 15:45:36 -0500
Subject: [PATCH 086/154] fix(fctrserver): parse updated version string
correctly (#4688)
---
lgsm/modules/info_game.sh | 2 +-
lgsm/modules/update_fctr.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index a9d9834b0..62292ffa0 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1310,7 +1310,7 @@ fn_info_game_fctr() {
# get server version if installed.
local factoriobin="${executabledir}${executable:1}"
if [ -f "${factoriobin}" ]; then
- serverversion="$(${factoriobin} --version | grep "Version:" | awk '{print $2}')"
+ serverversion="$(${factoriobin} --version | grep -m 1 "Version:" | awk '{print $2}')"
fi
}
diff --git a/lgsm/modules/update_fctr.sh b/lgsm/modules/update_fctr.sh
index b64812319..b49386654 100644
--- a/lgsm/modules/update_fctr.sh
+++ b/lgsm/modules/update_fctr.sh
@@ -20,7 +20,7 @@ fn_update_localbuild() {
# Uses executable to get local build.
if [ -d "${executabledir}" ]; then
cd "${executabledir}" || exit
- localbuild=$(${executable} --version | grep "Version:" | awk '{print $2}')
+ localbuild=$(${executable} --version | grep -m 1 "Version:" | awk '{print $2}')
fi
if [ -z "${localbuild}" ]; then
fn_print_error "Checking local build: ${remotelocation}: missing local build info"
From 3dabf33eaf5d111cac5934369080f6c511208a00 Mon Sep 17 00:00:00 2001
From: Alex Linde <38871119+Amlinde@users.noreply.github.com>
Date: Sat, 26 Oct 2024 15:45:36 -0500
Subject: [PATCH 087/154] fix(fctrserver): parse updated version string
correctly (#4688)
---
lgsm/modules/info_game.sh | 2 +-
lgsm/modules/update_fctr.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index a9d9834b0..62292ffa0 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -1310,7 +1310,7 @@ fn_info_game_fctr() {
# get server version if installed.
local factoriobin="${executabledir}${executable:1}"
if [ -f "${factoriobin}" ]; then
- serverversion="$(${factoriobin} --version | grep "Version:" | awk '{print $2}')"
+ serverversion="$(${factoriobin} --version | grep -m 1 "Version:" | awk '{print $2}')"
fi
}
diff --git a/lgsm/modules/update_fctr.sh b/lgsm/modules/update_fctr.sh
index b64812319..b49386654 100644
--- a/lgsm/modules/update_fctr.sh
+++ b/lgsm/modules/update_fctr.sh
@@ -20,7 +20,7 @@ fn_update_localbuild() {
# Uses executable to get local build.
if [ -d "${executabledir}" ]; then
cd "${executabledir}" || exit
- localbuild=$(${executable} --version | grep "Version:" | awk '{print $2}')
+ localbuild=$(${executable} --version | grep -m 1 "Version:" | awk '{print $2}')
fi
if [ -z "${localbuild}" ]; then
fn_print_error "Checking local build: ${remotelocation}: missing local build info"
From aa404f203320f78897cd188c649bbe84d55dea36 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 26 Oct 2024 21:46:35 +0100
Subject: [PATCH 088/154] Release v24.3.2
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index d040cf942..e4fa35b32 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.3.1"
+modulesversion="v24.3.2"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index b30ed57e8..9c35a6b84 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.3.1"
+version="v24.3.2"
shortname="core"
gameservername="core"
commandname="CORE"
From ee20e18be320a9fd5d1b9c5611404809d108bf00 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 11 Dec 2024 22:29:17 +0000
Subject: [PATCH 089/154] feat: User interface refactor (#4716)
* refactor: improve log directory creation
- Changed the variable `checklogs` from being set to `1` to being set to `true`.
- Improved the logic for creating log directories and files.
- Added more informative console output for each step of the process.
- Refactored code to use conditional statements instead of nested if statements.
- Removed unnecessary print statements.
This commit improves the way log directories are created and handles cases where logs already exist. It also provides clearer console output during the process.
* refactor: improve console output formatting
- Added color support for console output using tput commands
- Updated print functions to display formatted messages with colors and bold text
* refactor: improve console log creation
The code in `install_logs.sh` has been refactored to improve the creation of the console log. The commit removes unnecessary whitespace and updates the echo statement to provide a more concise output.
* a
* refactor: improve log directory creation messages
- Changed the format of log directory creation messages to include parentheses around the directory path.
- Updated the messages in `install_logs.sh` file to reflect this change.
* refactor: improve log directory symlink creation
The code has been refactored to improve the creation of symlinks for game log directories. The commit removes unnecessary echo statements and updates the output format to provide clearer information about the created symlinks.
* feat: create server directory
- Updated the script to create a server directory
- Removed unnecessary check for existing server directory
* refactor: improve console output for fetching files
The commit refactors the code in `install_server_dir.sh` and `linuxgsm.sh` to improve the console output when fetching files. The message now includes more descriptive information about the file being fetched, such as the source URL and local filename. Additionally, the success message has been updated to include brackets around "OK" for better readability.
* refactor: improve formatting of success message
The success message in the core_messages.sh file has been updated to include square brackets around "OK" for better visibility.
* ui
* refactor: improve console output for checking and fetching files
- Updated the console output in `command_update_linuxgsm.sh` to include formatting and improved readability.
- Improved the console output in `core_dl.sh` to include formatting and better indicate the progress of file fetching.
* refactor: improve logging message in fn_fetch_file
The logging message in the fn_fetch_file function has been improved to provide a more concise and informative output. Instead of mentioning the local filename separately, it is now included within the same line as the file URL name. This change enhances readability and clarity when fetching files.
* refactor: improve console output in core_dl.sh and linuxgsm.sh
- Refactored code to improve the console output in core_dl.sh and linuxgsm.sh.
- Updated echo statements to provide more informative messages.
- Removed unnecessary characters from the console output.
* refactor: improve code readability and remove unnecessary comments
The commit message summarizes the changes made to the code. In this case, the code has been refactored to improve its readability and remove unnecessary comments.
* refactor: improve readability and consistency in code
- Refactored echo statements to provide more informative messages.
- Renamed variables for better clarity.
- Removed unnecessary comments and unused code.
* refactor: improve logging message in core_dl.sh
The logging message in the `fn_fetch_file` function has been updated to provide a more concise and informative description of the file being fetched.
* refactor(core_messages): update print functions
- Updated the print functions in the core_messages.sh file to improve readability and consistency.
- Replaced the use of "tputreset" with "${default}" for better code clarity.
- Modified the formatting of the output messages to follow a consistent pattern.
- Removed unnecessary escape sequences from the echo statements.
* refactor: improve header and server directory installation messages
- Updated ASCII logo formatting for better visibility.
- Added emphasis to the LinuxGSM name in the header message.
- Changed the contributor and sponsor links to be more descriptive.
- Modified the server directory installation message to indicate if a game server already exists at the specified location.
* refactor: improve log directory creation messages
- Changed the log directory creation messages to include square brackets around the directory paths.
- Updated the console log and game log directory creation messages to use square brackets as well.
- Modified the symlink creation messages for game logs and Steam logs to also include square brackets.
This commit improves the readability of the log directory creation process by adding square brackets around the relevant paths.
* refactor: improve log directory creation and server directory installation
- Change log directory creation message to use bold font for emphasis.
- Update symlink creation message to clarify that it is creating a symlink to the game log directory.
- Add a check to skip creating a symlink if it already exists for the Steam log directory.
- Change server directory installation message to use bold font for emphasis.
* refactor: improve log directory symlink creation
This commit refactors the code in `install_logs.sh` to improve the creation of symlinks for game log directories. The commit fixes a typo in the echo statement and updates the symlink paths for both game logs and Steam logs.
* feat: create serverfiles directory
- Updated the message to indicate that a serverfiles directory is being created
- Improved clarity and readability of the code
* refactor: improve consistency and readability of print functions
- Refactored the print functions in the core_messages.sh file to improve consistency and readability.
- Updated the output format by adding ellipsis (...) before each status message for better visual separation.
- Replaced hard-coded color codes with variables for easier maintenance.
Co-authored-by: AI Assistant
* refactor: improve readability of code in command_update_linuxgsm.sh
- Replaced "checking" with "checking [filename]" for better clarity
- Changed echo statements to use fn_print_update_eol_nl instead of fn_print_ok_eol_nl
- Updated comments for better understanding of the code flow
* refactor: improve logging and error handling in command_update_linuxgsm.sh
- Refactored log messages for better clarity and readability.
- Improved error handling by checking the return value of curl command.
- Updated backup location log message to include brackets.
* refactor: simplify code for checking file differences
The commit simplifies the code for checking file differences in the `command_update_linuxgsm.sh` script. It replaces the function `fn_print_ok_eol_nl` with `fn_print_skip_eol_nl` to improve readability and maintainability.
* refactor: improve print message in command_update_linuxgsm.sh
The code change refactors the print message in the command_update_linuxgsm.sh file. Instead of printing "OK", it now prints "SKIP" to indicate that a module is being removed. This improves clarity and consistency in the script's output.
* skip
* refactor: improve readability and add emphasis to file names in code
- Refactored code to improve readability and maintainability.
- Added emphasis to file names by using italics.
- Updated echo statements to reflect the changes.
* feat: improve fetch file output
- Updated the fetch file function in core_dl.sh and linuxgsm.sh to provide more informative output.
- Replaced the parentheses with square brackets to enclose the local filename.
- Added italics formatting to highlight the local filename.
* feat: improve log directory creation
- Updated log directory creation to include italic formatting for directory names.
- Added italic formatting for script log, console log, game log, and steam log directories.
- Improved serverfiles directory creation by including italic formatting for the directory name.
* refactor: improve readability and consistency in code
- Updated the echo statement to include formatting for script name
- Added bold formatting to EULA acceptance message
- Removed unnecessary line breaks and added italic formatting to EULA URL
- Refactored code to remove duplicate calls to install_eula.sh
* feat: add new line before Y/N prompt
The commit adds a new line before the Y/N prompt in the `fn_prompt_yn` function. This improves readability and user experience.
refactor: improve formatting in install_server_files.sh
The commit improves the formatting in the `install_server_files.sh` file by adding bold styling to the installation header. It also adds bold styling to the separator line for better visual separation. These changes enhance the overall appearance of the installation process.
fix: correct formatting issue in install_server_files.sh
The commit fixes a formatting issue in the `install_server_files.sh` file where an extra separator line was not properly formatted with bold styling. The fix ensures consistent and correct formatting throughout the script.
chore: update prompt message in install_server_files.sh
The commit updates a prompt message in the `install_server_files.sh` file to make it more informative and user-friendly. The updated message asks if the installation was successful, providing clearer instructions for users.
refactor: remove redundant separator line in install_server_files.sh
The commit removes a redundant separator line from the `install_server_files.sh` file that was causing unnecessary visual clutter. This improves code readability and simplifies the installation process.
* changes
* refactor: improve logging and error handling in install_config.sh
- Refactored the code to use more descriptive function names.
- Improved logging by using fn_print_ok_eol and fn_print_failure_eol functions.
- Added error handling for copying config files, displaying failure messages if necessary.
- Updated comments for better clarity.
* refactor: improve logging and remove unnecessary code
- Changed `fn_print_failure_eol` to `fn_print_fail_eol` for consistency.
- Removed redundant log messages and sleep time.
- Simplified the logic for changing hostname and rcon/admin password.
- Removed warning message when config file is not found.
Co-authored-by: AI Assistant
* refactor: update server names in default configuration files
- Updated the servername value in multiple default configuration files to "LinuxGSM" for consistency.
- Refactored the code to reflect the changes made.
This commit refactors the default configuration files for various game servers by updating the servername value to "LinuxGSM". This change ensures consistency across different game servers.
* refactor: remove unused code and files
This commit removes unused code and files from the project. The deleted files include default configuration files and test scripts that are no longer needed.
* refactor: improve readability and error handling in install_config.sh
- Refactored the code to improve readability by adding bold formatting to console output.
- Improved error handling by using the exit status of commands instead of a separate variable.
- Replaced repetitive sleep calls with fn_sleep_time function.
- Updated log messages for clarity and consistency.
- Added conditional checks for successful file copying and printing appropriate status messages.
Co-authored-by: AI Assistant
* refactor: simplify config file copying and error handling
This commit simplifies the code for copying default config files from the Game-Server-Configs repository to the server's config location. It also improves error handling by printing appropriate messages and logging them.
* misc changes
* reword of dst config install
Removed install settings as it complicates setup. The admin how has to manually setup a slave shard using configs. By default LinuxGSM will setup a Master shard. Docs will need to be updated.
* refactor: improve config location listing
- Renamed the function `fn_list_config_locations` to better reflect its purpose.
- Updated the output messages to provide clearer information about the config locations.
- Added formatting enhancements for better readability.
This commit refactors the code related to listing config locations, making it more user-friendly and informative.
* ui changes
* refactor: improve code readability and fix typos
- Refactored the code to improve readability and organization.
- Fixed typos in the comments and echo statements.
- Changed some echo statements to use variables for better consistency.
- Updated URLs in the echo statements to be clickable links.
Co-authored-by: [co-author name]
* ui changes
* ui changes
* fix: update warning message for missing SteamCMD
The commit updates the warning message in the code to indicate that SteamCMD is not installed instead of being missing. Additionally, it modifies the log message accordingly.
* refactor: simplify directory creation in install_config.sh
This commit simplifies the code for creating config directories in the install_config.sh file. Instead of using separate variables for each directory path, it now uses a single variable to create the necessary directories. This improves readability and reduces redundancy in the code.
* feat: add installation and information for SteamCMD
- Added code to install SteamCMD if it is missing or the steamcmd directory is missing.
- Modified the check_steamcmd function to print a warning message if SteamCMD is not installed.
- Modified the info_game_dst function to retrieve additional information from server and cluster configuration files.
- Updated the installation script to display a bold header before installing SteamCMD.
* refactor: improve error message in install_config.sh
The commit refactors the code in `install_config.sh` to improve the error message when copying a config file. The function `fn_print_failure_eol_nl` is renamed to `fn_print_fail_eol_nl` for clarity and consistency. This change enhances the readability and maintainability of the code.
* refactor: improve conditional statements in install_config.sh
The code changes refactor the conditional statements in the `install_config.sh` file. Instead of checking if `${shortname}` is equal to "dst" or "arma3", it now checks if `${clustercfgdir}` or `${networkcfgdir}` are not empty, respectively. This improves readability and maintainability of the code.
a
* refactor: simplify config directory creation and copying
The code changes simplify the logic for creating config directories and copying config files. The function `fn_check_cfgdir` now only creates the server config directory if it exists, removing unnecessary checks for other directories. Additionally, the function `fn_default_config_remote` no longer duplicates the call to `fn_check_cfgdir`.
* refactor: improve variable naming and remove unnecessary code duplication
The commit refactors the code in `install_config.sh` to improve variable naming and remove unnecessary code duplication. Specifically, it renames the variables for better clarity and removes redundant lines of code.
refactor: improve installation and configuration process
- Refactored the fix_dst.sh script to keep the shard name in server.ini consistent with the LinuxGSM config.
- Updated install_config.sh to provide clearer messages during the default config download and copy processes.
refactor: update shard name in server.ini
The code has been refactored to update the shard name in the server.ini file. This change ensures that the shard name in the LinuxGSM config matches the one in server.ini.
* feat: improve console output formatting
- Added separator function to improve readability of console output.
- Replaced multiple instances of manual separators with the new function.
- Updated commit message to follow conventional commit standard.
* refactor: remove unnecessary fn_sleep_time calls
This commit removes the fn_sleep_time function calls that are no longer needed in multiple modules. The fn_sleep_time function was used to introduce a delay, but it is no longer necessary for the current implementation.
* refactor: remove unused functions
This commit removes a large number of unused functions from the core_functions.sh module. These functions were not being called or used anywhere in the codebase and were therefore unnecessary. Removing them helps to clean up the code and improve maintainability.
* refactor: improve consistency and readability of code
- Changed the color of "Missing Server Details" to bold yellow
- Changed the color of "Query IP Addresses" to bold yellow
- Changed the color of "Game Server Ports" to bold yellow
- Changed the color of "SS Output" to bold yellow
- Changed the color of "Query Port - Raw Output" to bold yellow
- Changed the color of "Gamedig Raw Output" to bold yellow
- Changed the color of "gsquery Raw Output" to bold yellow
- Changed the color of "TCP Raw Output" to bold yellow
- Changed the color of "Game Port - Raw Output" to bold yellow
- Changed the color of "Steam Master Server Response" to bold yellow
- Updated commit message formatting for better readability
* refactor: improve code readability and efficiency in command_dev_query_raw.sh
- Simplify conditionals by replacing [ -v var ] with [ -n "${var}" ]
- Remove unnecessary checks for the presence of jq and gamedig
- Update output headers to be more descriptive and consistent
- Use italic formatting for curl command in Steam Master Server Response section
* refactor: improve query output formatting
The code changes refactor the query output formatting in the command_dev_query_raw.sh file. The changes include:
- Adding italics to certain command outputs for better readability
- Removing unnecessary echo statements
- Updating comments and indentation for clarity
* refactor: simplify storage information display
The code in `info_messages.sh` has been refactored to improve the readability and conciseness of the storage information display. The labels for total and used space have been shortened to "Total" and "Used" respectively.
* refactor: renamed fatal to fail to improve consistency
- Updated the log level from "fatal" to "fail" in the alert scripts.
* feat: add conditional printing of alert messages
This commit adds conditional statements to only print alert messages if the corresponding alerts are turned on. This improves the readability of the output by only displaying relevant information.
- Added conditionals for Discord, Email, Gotify, IFTTT, Pushbullet, Pushover, Rocketchat, Slack, and Telegram alerts
- Only prints alert messages if the corresponding alerts are turned on
* feat: improve console and post details commands
- Updated the console command to display a link in italics to the documentation.
- Updated the post details command to display the URL in italics for support.
- Renamed "Donation options" to "Sponsorship options" in the sponsor command.
- Added Minecraft as an example of a game with query enabled in info messages.
Closes #123
* quit
* update fn_bootstrap_fetch_file
* ui changes
* bootstrap trap
* ui updates
* att bootstrap fetch module
* ui updates
* bug
* merge 2 functions
* ui changes
* config ui changes
* installer ui changes
* installer ui changes
* add fn_print and fn_print_nl
* remove space
* add new dev command ui
* bug
* skip to light blue
* update to light blue
* reset to default
* update ui changes
* steamui changes
* print
* fix
* sleep time
* validate
* remote location
* italic url
* fastdl
* fn_print
* fix
* ui
* speed up
* fastdl ui
* ui fix
* ui fix
* update some headers
* header updates
* minor changes
* install changes
* messages refactor
* ui changes
* bug
* standardise exitcode
* tidy
* bug
* bug
* revert
* updating dev ui
* ui changes
* bug
* skip
* bug
* change minimum required message
* fix incorrect var name
* ui updates
* remove ) from results
* revert
* ensure command action capitals are consistant
* revert
* revert
* revert
* codacy
* revert
* revert
---------
Co-authored-by: AI Assistant
Co-authored-by: AI Assistant
---
.../config-lgsm/ts3server/_default.cfg | 2 +-
lgsm/modules/alert_email.sh | 2 +-
lgsm/modules/alert_gotify.sh | 2 +-
lgsm/modules/check_deps.sh | 11 +-
lgsm/modules/check_gamedig.sh | 2 +
lgsm/modules/check_logs.sh | 2 +-
lgsm/modules/check_system_requirements.sh | 5 +-
lgsm/modules/command_backup.sh | 14 +-
lgsm/modules/command_console.sh | 11 +-
lgsm/modules/command_debug.sh | 13 +-
lgsm/modules/command_details.sh | 2 +-
lgsm/modules/command_dev_clear_modules.sh | 2 +-
lgsm/modules/command_dev_debug.sh | 2 +-
lgsm/modules/command_dev_detect_deps.sh | 8 +-
lgsm/modules/command_dev_detect_glibc.sh | 14 +-
lgsm/modules/command_dev_detect_ldd.sh | 10 +-
.../command_dev_parse_distro_details.sh | 7 +
.../modules/command_dev_parse_game_details.sh | 7 +
lgsm/modules/command_dev_query_raw.sh | 89 ++---
lgsm/modules/command_dev_ui.sh | 110 +++++++
lgsm/modules/command_fastdl.sh | 110 +++----
lgsm/modules/command_install_resources_mta.sh | 2 +-
lgsm/modules/command_mods_install.sh | 2 +-
lgsm/modules/command_mods_remove.sh | 12 +-
lgsm/modules/command_mods_update.sh | 2 +-
lgsm/modules/command_monitor.sh | 76 ++---
lgsm/modules/command_postdetails.sh | 14 +-
lgsm/modules/command_send.sh | 2 +-
lgsm/modules/command_skeleton.sh | 2 +-
lgsm/modules/command_sponsor.sh | 2 +-
lgsm/modules/command_start.sh | 6 +-
lgsm/modules/command_stop.sh | 10 +-
lgsm/modules/command_ts3_server_pass.sh | 2 +-
lgsm/modules/command_update_linuxgsm.sh | 75 +++--
lgsm/modules/command_validate.sh | 6 +-
lgsm/modules/command_wipe.sh | 31 +-
lgsm/modules/compress_unreal2_maps.sh | 2 +-
lgsm/modules/compress_ut99_maps.sh | 2 +-
lgsm/modules/core_dl.sh | 46 +--
lgsm/modules/core_exit.sh | 10 +-
lgsm/modules/core_getopt.sh | 17 +-
lgsm/modules/core_messages.sh | 306 ++++++++----------
lgsm/modules/core_modules.sh | 10 +
lgsm/modules/core_steamcmd.sh | 49 +--
lgsm/modules/fix.sh | 5 +-
lgsm/modules/fix_bt.sh | 2 +-
lgsm/modules/fix_rust.sh | 2 +-
lgsm/modules/info_distro.sh | 9 +-
lgsm/modules/info_messages.sh | 44 ++-
lgsm/modules/install_complete.sh | 15 +-
lgsm/modules/install_config.sh | 248 ++++++--------
lgsm/modules/install_dst_token.sh | 2 +-
lgsm/modules/install_eula.sh | 4 +-
lgsm/modules/install_gslt.sh | 20 +-
lgsm/modules/install_logs.sh | 98 +++---
lgsm/modules/install_server_dir.sh | 12 +-
lgsm/modules/install_server_files.sh | 7 +-
lgsm/modules/install_squad_license.sh | 2 +-
lgsm/modules/install_stats.sh | 4 +-
lgsm/modules/install_ts3db.sh | 4 +-
lgsm/modules/install_ut2k4_key.sh | 2 +-
lgsm/modules/mods_core.sh | 60 ++--
lgsm/modules/update_mcb.sh | 8 +-
lgsm/modules/update_pmc.sh | 2 +-
lgsm/modules/update_ut99.sh | 2 +-
lgsm/modules/update_xnt.sh | 2 +-
linuxgsm.sh | 102 ++++--
67 files changed, 951 insertions(+), 816 deletions(-)
create mode 100644 lgsm/modules/command_dev_ui.sh
diff --git a/lgsm/config-default/config-lgsm/ts3server/_default.cfg b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
index d132d5c57..bacda7aaa 100644
--- a/lgsm/config-default/config-lgsm/ts3server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ts3server/_default.cfg
@@ -133,7 +133,7 @@ consoleinteract="no"
## Game Server Details
# Do not edit
gamename="TeamSpeak 3"
-servername="TeamSpeak 3 Server"
+servername="LinuxGSM"
engine="null"
glibc="2.17"
diff --git a/lgsm/modules/alert_email.sh b/lgsm/modules/alert_email.sh
index ca9db1bc4..aa13494d1 100644
--- a/lgsm/modules/alert_email.sh
+++ b/lgsm/modules/alert_email.sh
@@ -15,7 +15,7 @@ else
mail -s "${alerttitle}" "${email}" < "${alertlog}"
fi
exitcode=$?
-if [ "${exitcode}" == "0" ]; then
+if [ "${exitcode}" -ne 0 ]; then
fn_print_ok_nl "Sending Email alert: ${email}"
fn_script_log_pass "Sending Email alert: ${email}"
else
diff --git a/lgsm/modules/alert_gotify.sh b/lgsm/modules/alert_gotify.sh
index 724ff1d79..dcb438fb2 100644
--- a/lgsm/modules/alert_gotify.sh
+++ b/lgsm/modules/alert_gotify.sh
@@ -5,7 +5,7 @@
# Website: https://linuxgsm.com
# Description: Sends Gotify alert.
-module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
jsoninfo=$(
cat << EOF
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index d7df071d3..95d4a6ad0 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -78,11 +78,12 @@ fn_install_mono_repo() {
# Did Mono repo install correctly?
if [ "${monoautoinstall}" != "1" ]; then
- if [ $? != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_failure_nl "Unable to install Mono repository."
fn_script_log_fail "Unable to install Mono repository."
else
- fn_print_complete_nl "Installing Mono repository completed."
+ fn_print_success_nl "Installing Mono repository completed."
fn_script_log_pass "Installing Mono repository completed."
fi
fi
@@ -226,7 +227,7 @@ fn_install_missing_deps() {
else
if [ "${commandname}" == "INSTALL" ]; then
- fn_print_information_nl "Required dependencies already installed."
+ fn_print_skip2_nl "Required dependencies already installed."
fn_script_log_info "Required dependencies already installed."
fi
fi
@@ -234,7 +235,7 @@ fn_install_missing_deps() {
fn_check_loop() {
# Loop though required depenencies checking if they are installed.
- for deptocheck in ${array_deps_required[*]}; do
+ for deptocheck in "${array_deps_required[@]}"; do
fn_deps_detector
done
@@ -318,7 +319,7 @@ fn_deps_detector() {
fi
# If SteamCMD requirements are not met install will fail.
if [ -n "${appid}" ]; then
- for steamcmddeptocheck in ${array_deps_required_steamcmd[*]}; do
+ for steamcmddeptocheck in "${array_deps_required_steamcmd[@]}"; do
if [ "${deptocheck}" != "steamcmd" ] && [ "${deptocheck}" == "${steamcmddeptocheck}" ]; then
steamcmdfail=1
fi
diff --git a/lgsm/modules/check_gamedig.sh b/lgsm/modules/check_gamedig.sh
index 70aeea41b..0942ac42a 100644
--- a/lgsm/modules/check_gamedig.sh
+++ b/lgsm/modules/check_gamedig.sh
@@ -5,6 +5,8 @@
# Website: https://linuxgsm.com
# Description: Installs nodejs and gamedig
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+
if [ "$(command -v node)" ] && [ "$(command -v npm)" ] && [ "$(node -v | cut -d 'v' -f 2 | cut -d '.' -f 1)" -ge 16 ] && [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
echo -e ""
echo -e "${bold}${lightyellow}Installing Gamedig${default}"
diff --git a/lgsm/modules/check_logs.sh b/lgsm/modules/check_logs.sh
index 5e2d66c35..36fb24036 100644
--- a/lgsm/modules/check_logs.sh
+++ b/lgsm/modules/check_logs.sh
@@ -10,7 +10,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_check_logs() {
fn_print_dots "Checking for log files"
fn_print_info_nl "Checking for log files: Creating log files"
- checklogs=1
+ checklogs=true
install_logs.sh
}
diff --git a/lgsm/modules/check_system_requirements.sh b/lgsm/modules/check_system_requirements.sh
index 7dd0551a5..531695a6e 100644
--- a/lgsm/modules/check_system_requirements.sh
+++ b/lgsm/modules/check_system_requirements.sh
@@ -71,8 +71,9 @@ fi
if [ "${ramrequirementgb}" ]; then
if (($(echo "${physmemtotalgb} < ${ramrequirementgb}" | bc -l))); then
fn_print_dots "Checking RAM"
- fn_print_warn_nl "Checking RAM: ${ramrequirementgb}G required, ${physmemtotal} available"
- echo "* ${gamename} server may fail to run or experience poor performance."
+ fn_print_warn_nl "Checking RAM: Minumum RAM requirements not met"
+ fn_print_nl "* ${ramrequirementgb}G is required, but only ${physmemtotal} is available."
+ fn_print_nl "* ${gamename} server may fail to run or experience poor performance."
fn_sleep_time_5
fi
fi
diff --git a/lgsm/modules/command_backup.sh b/lgsm/modules/command_backup.sh
index 6bbc07f02..010c60577 100644
--- a/lgsm/modules/command_backup.sh
+++ b/lgsm/modules/command_backup.sh
@@ -6,7 +6,7 @@
# Description: Creates a .tar.gz file in the backup directory.
commandname="BACKUP"
-commandaction="Backing up"
+commandaction="Backup"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
@@ -115,7 +115,7 @@ fn_backup_compression() {
# Tells how much will be compressed using rootdirduexbackup value from info_distro and prompt for continue.
fn_print_info "A total of ${rootdirduexbackup} will be compressed."
fn_script_log_info "A total of ${rootdirduexbackup} will be compressed: ${backupdir}/${backupname}.tar.gz"
- fn_print_dots "Backup (${rootdirduexbackup}) ${backupname}.tar.gz, in progress..."
+ fn_print_dots "Backup (${rootdirduexbackup}) ${backupname}.tar.gz, in progress ..."
fn_script_log_info "Backup ${rootdirduexbackup} ${backupname}.tar.gz, in progress"
excludedir=$(fn_backup_relpath)
@@ -127,8 +127,8 @@ fn_backup_compression() {
fi
tar --use-compress-program=pigz -cf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" --exclude "${tmpdir}" ./.
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol
fn_script_log_fail "Backup in progress: FAIL"
echo -e "${extractcmd}" | tee -a "${lgsmlog}"
@@ -136,7 +136,7 @@ fn_backup_compression() {
fn_script_log_fail "Starting backup"
else
fn_print_ok_eol
- fn_print_ok_nl "Completed: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
+ fn_print_ok_nl "Completed: ${italic}${backupname}.tar.gz${default}, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
fn_script_log_pass "Backup created: ${backupname}.tar.gz, total size $(du -sh "${backupdir}/${backupname}.tar.gz" | awk '{print $1}')"
alert="backup"
alert.sh
@@ -190,7 +190,7 @@ fn_backup_prune() {
fn_backup_relpath() {
# Written by CedarLUG as a "realpath --relative-to" alternative in bash.
# Populate an array of tokens initialized from the rootdir components.
- declare -a rdirtoks=($(readlink -f "${rootdir}" | sed "s/\// /g"))
+ mapfile -t rdirtoks < <(readlink -f "${rootdir}" | sed "s/\// /g")
if [ ${#rdirtoks[@]} -eq 0 ]; then
fn_print_fail_nl "Problem assessing rootdir during relative path assessment"
fn_script_log_fail "Problem assessing rootdir during relative path assessment: ${rootdir}"
@@ -198,7 +198,7 @@ fn_backup_relpath() {
fi
# Populate an array of tokens initialized from the backupdir components.
- declare -a bdirtoks=($(readlink -f "${backupdir}" | sed "s/\// /g"))
+ mapfile -t bdirtoks < <(readlink -f "${backupdir}" | sed "s/\// /g")
if [ ${#bdirtoks[@]} -eq 0 ]; then
fn_print_fail_nl "Problem assessing backupdir during relative path assessment"
fn_script_log_fail "Problem assessing backupdir during relative path assessment: ${rootdir}"
diff --git a/lgsm/modules/command_console.sh b/lgsm/modules/command_console.sh
index aa17e839e..6344088b3 100644
--- a/lgsm/modules/command_console.sh
+++ b/lgsm/modules/command_console.sh
@@ -6,13 +6,14 @@
# Description: Gives access to the server tmux console.
commandname="CONSOLE"
-commandaction="Access console"
+commandaction="Access Console"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
-check.sh
fn_print_header
+check.sh
+
if [ "${consoleverbose}" == "yes" ]; then
echo -e "* Verbose output: ${lightgreen}yes${default}"
elif [ "${consoleverbose}" == "no" ]; then
@@ -29,10 +30,10 @@ else
echo -e "* Interactive output: ${red}unknown${default}"
fi
echo ""
-fn_print_information_nl "Press \"CTRL+b\" then \"d\" to exit console."
-fn_print_warning_nl "Do NOT press CTRL+c to exit."
-echo -e "* https://docs.linuxgsm.com/commands/console"
+fn_print_information_nl "Press ${italic}\"CTRL+b\"${default} then ${italic}\"d\"${default} to exit console."
+fn_print_warning_nl "Do ${underline}NOT${default} press CTRL+c to exit."
echo -e ""
+echo -e "${italic}https://docs.linuxgsm.com/commands/console${default}"
if ! fn_prompt_yn "Continue?" Y; then
exitcode=0
core_exit.sh
diff --git a/lgsm/modules/command_debug.sh b/lgsm/modules/command_debug.sh
index b5f2dabac..a5dae7615 100644
--- a/lgsm/modules/command_debug.sh
+++ b/lgsm/modules/command_debug.sh
@@ -6,7 +6,7 @@
# Description: Runs the server without tmux and directly from the terminal.
commandname="DEBUG"
-commandaction="Debuging"
+commandaction="Debugging"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
@@ -24,11 +24,13 @@ fn_lockfile_trap() {
core_exit.sh
}
+fn_print_header
+
check.sh
fix.sh
info_distro.sh
info_game.sh
-fn_print_header
+
{
echo -e "${lightblue}Distro:\t\t${default}${distroname}"
echo -e "${lightblue}Architecture:\t\t${default}${arch}"
@@ -121,9 +123,10 @@ else
eval "${preexecutable} ${executable} ${startparameters}"
fi
-if [ $? -ne 0 ]; then
- fn_print_error_nl "Server has stopped: exit code: $?"
- fn_script_log_error "Server has stopped: exit code: $?"
+exitcode=$?
+if [ "${exitcode}" -ne 0 ]; then
+ fn_print_error_nl "Server has stopped: exit code: ${exitcode}"
+ fn_script_log_error "Server has stopped: exit code: ${exitcode}"
fn_print_error_nl "Press ENTER to exit debug mode"
read -r
else
diff --git a/lgsm/modules/command_details.sh b/lgsm/modules/command_details.sh
index 2800e5123..8de2ddeb5 100644
--- a/lgsm/modules/command_details.sh
+++ b/lgsm/modules/command_details.sh
@@ -6,7 +6,7 @@
# Description: Displays server information.
commandname="DETAILS"
-commandaction="Viewing details"
+commandaction="Display Details"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/command_dev_clear_modules.sh b/lgsm/modules/command_dev_clear_modules.sh
index e2e80164f..d6196ba74 100644
--- a/lgsm/modules/command_dev_clear_modules.sh
+++ b/lgsm/modules/command_dev_clear_modules.sh
@@ -6,7 +6,7 @@
# Description: Deletes the contents of the modules dir.
commandname="DEV-CLEAR-MODULES"
-commandaction="Clearing modules"
+commandaction="Clear Modules"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/command_dev_debug.sh b/lgsm/modules/command_dev_debug.sh
index 3226fc186..2b13b8c41 100644
--- a/lgsm/modules/command_dev_debug.sh
+++ b/lgsm/modules/command_dev_debug.sh
@@ -6,7 +6,7 @@
# Description: Dev only: Enables debugging log to be saved to dev-debug.log.
commandname="DEV-DEBUG"
-commandaction="Developer debug"
+commandaction="Developer Debug"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_reset
diff --git a/lgsm/modules/command_dev_detect_deps.sh b/lgsm/modules/command_dev_detect_deps.sh
index fead2c285..fca15f075 100644
--- a/lgsm/modules/command_dev_detect_deps.sh
+++ b/lgsm/modules/command_dev_detect_deps.sh
@@ -6,13 +6,11 @@
# Description: Detects dependencies the server binary requires.
commandname="DEV-DETECT-DEPS"
-commandaction="Developer detect deps"
+commandaction="Dependency Checker"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
-echo -e ""
-echo -e "${bold}Dependencies Checker${default}"
-fn_messages_separator
+fn_print_header
echo -e "Checking directory: "
echo -e "${serverfiles}"
if [ "$(command -v eu-readelf 2> /dev/null)" ]; then
@@ -186,7 +184,7 @@ echo -e "${bold}Required Dependencies${default}"
fn_messages_separator
echo -e "${executable}"
echo -e ""
-echo -e "CentOS"
+echo -e "${bold}CentOS"
fn_messages_separator
cat "${tmpdir}/.depdetect_centos_line"
echo -e ""
diff --git a/lgsm/modules/command_dev_detect_glibc.sh b/lgsm/modules/command_dev_detect_glibc.sh
index 6326cf5cb..20398bd47 100644
--- a/lgsm/modules/command_dev_detect_glibc.sh
+++ b/lgsm/modules/command_dev_detect_glibc.sh
@@ -7,13 +7,11 @@
# Can check a file or directory recursively.
commandname="DEV-DETECT-GLIBC"
-commandaction="Developer detect glibc"
+commandaction="Detect Glibc Requirements"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
-fn_messages_separator
-echo -e "glibc Requirements Checker"
-fn_messages_separator
+fn_print_header
if [ ! "$(command -v objdump 2> /dev/null)" ]; then
fn_print_failure_nl "objdump is missing"
@@ -48,17 +46,17 @@ for glibc_check_var in "${glibc_check_dir_array[@]}"; do
glibc_check_files=$(find "${glibc_check_dir}" | wc -l)
find "${glibc_check_dir}" -type f -print0 \
| while IFS= read -r -d $'\0' line; do
- glibcversion=$(objdump -T "${line}" 2> /dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1)
+ glibcversion=$(objdump -T "${line}" 2> /dev/null | grep -oP "GLIBC[^ ]+" | grep -v GLIBCXX | sort | uniq | sort -r --version-sort | head -n 1 | sed 's/)$//')
if [ "${glibcversion}" ]; then
echo -e "${glibcversion}: ${line}" >> "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp"
fi
- objdump -T "${line}" 2> /dev/null | grep -oP "GLIBC[^ ]+" >> "${tmpdir}/detect_glibc_${glibc_check_var}.tmp"
+ objdump -T "${line}" 2> /dev/null | grep -oP "GLIBC[^ ]+" | sed 's/)$//' >> "${tmpdir}/detect_glibc_${glibc_check_var}.tmp"
echo -n "${i} / ${glibc_check_files}" $'\r'
((i++))
done
echo -e ""
echo -e ""
- echo -e "${glibc_check_name} glibc Requirements"
+ fn_print_nl "${bold}${lightyellow}${glibc_check_name} glibc Requirements"
fn_messages_separator
if [ -f "${tmpdir}/detect_glibc_files_${glibc_check_var}.tmp" ]; then
echo -e "Required glibc"
@@ -80,7 +78,7 @@ for glibc_check_var in "${glibc_check_dir_array[@]}"; do
fi
done
echo -e ""
-echo -e "Final glibc Requirement"
+fn_print_nl "${bold}${lightyellow}Final glibc Requirement"
fn_messages_separator
if [ -f "${tmpdir}/detect_glibc_highest.tmp" ]; then
cat "${tmpdir}/detect_glibc_highest.tmp" | sort | uniq | sort -r --version-sort | head -1
diff --git a/lgsm/modules/command_dev_detect_ldd.sh b/lgsm/modules/command_dev_detect_ldd.sh
index 9d0bf5148..62db24da0 100644
--- a/lgsm/modules/command_dev_detect_ldd.sh
+++ b/lgsm/modules/command_dev_detect_ldd.sh
@@ -7,13 +7,11 @@
# Can check a file or directory recursively.
commandname="DEV-DETECT-LDD"
-commandaction="Developer detect ldd"
+commandaction="Shared Object Dependencies Checker"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
-fn_messages_separator
-echo -e "Shared Object dependencies Checker"
-fn_messages_separator
+fn_print_header
if [ -z "${serverfiles}" ]; then
dir=$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")
@@ -46,12 +44,12 @@ find "${serverfiles}" -type f -print0 \
done
echo -e ""
echo -e ""
-echo -e "All"
+fn_print_nl "${bold}${lightyellow}All${default}"
fn_messages_separator
cat "${tmpdir}/detect_ldd.tmp"
echo -e ""
-echo -e "Not Found"
+fn_print_nl "${bold}${lightyellow}Not Found${default}"
fn_messages_separator
cat "${tmpdir}/detect_ldd_not_found.tmp"
diff --git a/lgsm/modules/command_dev_parse_distro_details.sh b/lgsm/modules/command_dev_parse_distro_details.sh
index f80c909ad..dfb68ba2b 100644
--- a/lgsm/modules/command_dev_parse_distro_details.sh
+++ b/lgsm/modules/command_dev_parse_distro_details.sh
@@ -5,6 +5,13 @@
# Website: https://linuxgsm.com
# Description: Display parsed distro details.
+commandname="DEV-PARSE-DISTRO-DETAILS"
+commandaction="Parse Distro Details"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
+
+fn_print_header
+
check_ip.sh
check_status.sh
info_distro.sh
diff --git a/lgsm/modules/command_dev_parse_game_details.sh b/lgsm/modules/command_dev_parse_game_details.sh
index 87284904c..7c0767eea 100644
--- a/lgsm/modules/command_dev_parse_game_details.sh
+++ b/lgsm/modules/command_dev_parse_game_details.sh
@@ -5,6 +5,13 @@
# Website: https://linuxgsm.com
# Description: Display parsed gameserver details.
+commandname="DEV-PARSE-GAME-DETAILS"
+commandaction="Parse Game Details"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
+
+fn_print_header
+
if [ -f "config" ]; then
servercfgfullpath="config"
fi
diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh
index 345298941..ea42599f9 100644
--- a/lgsm/modules/command_dev_query_raw.sh
+++ b/lgsm/modules/command_dev_query_raw.sh
@@ -6,10 +6,12 @@
# Description: Raw gamedig output of the server.
commandname="DEV-QUERY-RAW"
-commandaction="Developer query raw"
+commandaction="Developer Query Raw"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
+fn_print_header
+
check.sh
info_game.sh
info_distro.sh
@@ -26,24 +28,24 @@ echo -e "Telnet IP: ${telnetip}"
echo -e "Display IP: ${displayip}"
echo -e ""
-echo -e "${lightgreen}Query IP Addresses${default}"
+echo -e "${bold}${lightyellow}Query IP Addresses${default}"
fn_messages_separator
echo -e ""
for queryip in "${queryips[@]}"; do
echo -e "${queryip}"
done
echo -e ""
-echo -e "${lightgreen}Game Server Ports${default}"
+echo -e "${bold}${lightyellow}Game Server Ports${default}"
fn_messages_separator
{
echo -e "${lightblue}Port Name \tPort Number \tStatus \tTCP \tUDP${default}"
- if [ -v port ]; then
+ if [ -n "${port}" ]; then
echo -e "Game: \t${port} \t$(ss -tupl | grep -c "${port}") \t$(ss -tupl | grep "${port}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${port}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game:"
fi
if [ "${shortname}" == "pvr" ]; then
- if [ -v port401 ]; then
+ if [ -n "${port401}" ]; then
echo -e "Game+400: \t${port401} \t$(ss -tupl | grep -c "${port401}") \t$(ss -tupl | grep "${port401}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${port401}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game+400:"
@@ -51,140 +53,140 @@ fn_messages_separator
fi
if [ "${shortname}" == "mcb" ]; then
- if [ -v portipv6 ]; then
+ if [ -n "${portipv6}" ]; then
echo -e "Game ipv6: \t${portipv6} \t$(ss -tupl | grep -c "${portipv6}") \t$(ss -tupl | grep "${portipv6}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${portipv6}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game ipv6:"
fi
fi
- if [ -v queryport ]; then
+ if [ -n "${queryport}" ]; then
echo -e "Query: \t${queryport} \t$(ss -tupl | grep -c "${queryport}") \t$(ss -tupl | grep "${queryport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${queryport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Query:"
fi
- if [ -v apiport ]; then
+ if [ -n "${apiport}" ]; then
echo -e "Game: \t${apiport} \t$(ss -tupl | grep -c "${apiport}") \t$(ss -tupl | grep "${apiport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${apiport}" | grep udp | awk '{ print $2 }')"
else
echo -e "API:"
fi
- if [ -v appport ]; then
+ if [ -n "${appport}" ]; then
echo -e "App: \t${appport} \t$(ss -tupl | grep -c "${appport}") \t$(ss -tupl | grep "${appport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${appport}" | grep udp | awk '{ print $2 }')"
else
echo -e "App:"
fi
- if [ -v battleeyeport ]; then
+ if [ -n "${battleeyeport}" ]; then
echo -e "BattleEye: \t${battleeyeport} \t$(ss -tupl | grep -c "${battleeyeport}") \t$(ss -tupl | grep "${battleeyeport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${battleeyeport}" | grep udp | awk '{ print $2 }')"
else
echo -e "BattleEye:"
fi
- if [ -v beaconport ]; then
+ if [ -n "${beaconport}" ]; then
echo -e "Beacon: \t${beaconport} \t$(ss -tupl | grep -c "${beaconport}") \t$(ss -tupl | grep "${beaconport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${beaconport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Beacon:"
fi
- if [ -v clientport ]; then
+ if [ -n "${clientport}" ]; then
echo -e "Client: \t${clientport} \t$(ss -tupl | grep -c "${clientport}") \t$(ss -tupl | grep "${clientport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${clientport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Client:"
fi
- if [ -v fileport ]; then
+ if [ -n "${fileport}" ]; then
echo -e "File: \t${fileport} \t$(ss -tupl | grep -c "${fileport}") \t$(ss -tupl | grep "${fileport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${fileport}" | grep udp | awk '{ print $2 }')"
else
echo -e "File:"
fi
- if [ -v httpport ]; then
+ if [ -n "${httpport}" ]; then
echo -e "HTTP: \t${httpport} \t$(ss -tupl | grep -c "${httpport}") \t$(ss -tupl | grep "${httpport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${httpport}" | grep udp | awk '{ print $2 }')"
else
echo -e "HTTP:"
fi
- if [ -v httpqueryport ]; then
+ if [ -n "${httpqueryport}" ]; then
echo -e "HTTP Query: \t${httpqueryport} \t$(ss -tupl | grep -c "${httpqueryport}") \t$(ss -tupl | grep" ${httpqueryport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${httpqueryport}" | grep udp | awk '{ print $2 }')"
else
echo -e "HTTP Query:"
fi
- if [ -v httpport ]; then
+ if [ -n "${httpport}" ]; then
echo -e "Web Interface: \t${httpport} \t$(ss -tupl | grep -c "${httpport}") \t$(ss -tupl | grep "${httpport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${httpport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Web Interface:"
fi
- if [ -v masterport ]; then
+ if [ -n "${masterport}" ]; then
echo -e "Game: Master: \t${masterport} \t$(ss -tupl | grep -c "${masterport}") \t$(ss -tupl | grep "${masterport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${masterport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game: Master:"
fi
- if [ -v rawport ]; then
+ if [ -n "${rawport}" ]; then
echo -e "RAW UDP Socket: \t${rawport} \t$(ss -tupl | grep -c "${rawport}") \t$(ss -tupl | grep "${rawport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${rawport}" | grep udp | awk '{ print $2 }')"
else
echo -e "RAW UDP Socket:"
fi
- if [ -v rconport ]; then
+ if [ -n "${rconport}" ]; then
echo -e "RCON: \t${rconport} \t$(ss -tupl | grep -c "${rconport}") \t$(ss -tupl | grep "${rconport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${rconport}" | grep udp | awk '{ print $2 }')"
else
echo -e "RCON:"
fi
- if [ -v steamport ]; then
+ if [ -n "${steamport}" ]; then
echo -e "Steam: \t${steamport} \t$(ss -tupl | grep -c "${steamport}") \t$(ss -tupl | grep "${steamport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${steamport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Steam:"
fi
- if [ -v steamworksport ]; then
+ if [ -n "${steamworksport}" ]; then
echo -e "Steamworks P2P: \t${steamworksport} \t$(ss -tupl | grep -c "${steamworksport}") \t$(ss -tupl | grep "${steamworksport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${steamworksport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Steamworks P2P:"
fi
- if [ -v steamauthport ]; then
+ if [ -n "${steamauthport}" ]; then
echo -e "Steam: Auth: \t${steamauthport} \t$(ss -tupl | grep -c "${steamauthport}") \t$(ss -tupl | grep "${steamauthport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${steamauthport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Steam: Auth:"
fi
- if [ -v telnetport ]; then
+ if [ -n "${telnetport}" ]; then
echo -e "Telnet: \t${telnetport} \t$(ss -tupl | grep -c "${telnetport}") \t$(ss -tupl | grep "${telnetport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${telnetport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Telnet:"
fi
- if [ -v statsport ]; then
+ if [ -n "${statsport}" ]; then
echo -e "Stats: \t${battleeyeport} \t$(ss -tupl | grep -c "${statsport}") \t$(ss -tupl | grep "${statsport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${statsport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Stats:"
fi
- if [ -v sourcetvport ]; then
+ if [ -n "${sourcetvport}" ]; then
echo -e "SourceTV: \t${sourcetvport} \t$(ss -tupl | grep -c "${sourcetvport}") \t$(ss -tupl | grep "${sourcetvport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${sourcetvport}" | grep udp | awk '{ print $2 }')"
else
echo -e "SourceTV:"
fi
- if [ -v udplinkport ]; then
+ if [ -n "${udplinkport}" ]; then
echo -e "UDP Link: \t${udplinkport} \t$(ss -tupl | grep -c "${udplinkport}") \t$(ss -tupl | grep "${udplinkport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${udplinkport}" | grep udp | awk '{ print $2 }')"
else
echo -e "UDP Link:"
fi
- if [ -v voiceport ]; then
+ if [ -n "${voiceport}" ]; then
echo -e "Voice: \t${voiceport} \t$(ss -tupl | grep -c "${voiceport}") \t$(ss -tupl | grep "${voiceport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${voiceport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Voice:"
fi
- if [ -v voiceunusedport ]; then
+ if [ -n "${voiceunusedport}" ]; then
echo -e "Voice (Unused): \t${voiceunusedport} \t$(ss -tupl | grep -c "${voiceunusedport}") \t$(ss -tupl | grep "${voiceunusedport}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${voiceunusedport}" | grep udp | awk '{ print $2 }')"
else
echo -e "Voice (Unused):"
@@ -192,13 +194,15 @@ fn_messages_separator
} \
| column -s $'\t' -t
+
echo -e ""
-echo -e "${lightgreen}SS Output${default}"
+echo -e "${bold}${lightyellow}SS Output${default}"
fn_messages_separator
-fn_info_messages_ports
+fn_info_message_ports
eval "${portcommand}"
+
echo -e ""
-echo -e "${lightgreen}Query Port - Raw Output${default}"
+echo -e "${bold}${lightyellow}Query Port (${queryport}) - Gamedig Output${default}"
fn_messages_separator
echo -e ""
echo -e "PORT: ${port}"
@@ -210,33 +214,32 @@ echo -e ""
if [ ! "$(command -v gamedig 2> /dev/null)" ] && [ ! -f "${lgsmdir}/node_modules/gamedig/bin/gamedig.js" ]; then
fn_print_failure_nl "gamedig not installed"
fi
-if [ ! "$(command -v jq 2> /dev/null)" ]; then
- fn_print_failure_nl "jq not installed"
-fi
for queryip in "${queryips[@]}"; do
query_gamedig.sh
- echo -e "${gamedigcmd}"
+ echo -e "${italic}${gamedigcmd}${default}"
echo""
echo "${gamedigraw}" | jq
done
+
echo -e ""
-echo -e "${lightgreen}gsquery Raw Output${default}"
+echo -e "${bold}${lightyellow}Query Port (${queryport}) - gsquery Output${default}"
fn_messages_separator
echo -e ""
for queryip in "${queryips[@]}"; do
- echo -e "./query_gsquery.py -a \"${queryip}\" -p \"${queryport}\" -e \"${querytype}\""
+ echo -e "${italic}./query_gsquery.py -a \"${queryip}\" -p \"${queryport}\" -e \"${querytype}\"${default}"
echo -e ""
if [ ! -f "${modulesdir}/query_gsquery.py" ]; then
fn_fetch_file_github "lgsm/modules" "query_gsquery.py" "${modulesdir}" "chmodx" "norun" "noforce" "nohash"
fi
"${modulesdir}"/query_gsquery.py -a "${queryip}" -p "${queryport}" -e "${querytype}"
done
+
echo -e ""
-echo -e "${lightgreen}TCP Raw Output${default}"
+echo -e "${bold}${lightyellow}Query Port (${queryport}) - TCP Output${default}"
fn_messages_separator
echo -e ""
for queryip in "${queryips[@]}"; do
- echo -e "bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''"
+ echo -e "${italic}bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''${default}"
echo -e ""
timeout 3 bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${queryport}''
querystatus="$?"
@@ -248,14 +251,14 @@ for queryip in "${queryips[@]}"; do
fi
done
echo -e ""
-echo -e "${lightgreen}Game Port - Raw Output${default}"
+echo -e "${bold}${lightyellow}Game Port (${port}) - TCP Output${default}"
fn_messages_separator
echo -e ""
echo -e "${lightgreen}TCP Raw Output${default}"
fn_messages_separator
echo -e ""
for queryip in "${queryips[@]}"; do
- echo -e "bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''"
+ echo -e "${italic}bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''${default}"
echo -e ""
timeout 3 bash -c 'exec 3<> /dev/tcp/'${queryip}'/'${port}''
querystatus="$?"
@@ -267,10 +270,10 @@ for queryip in "${queryips[@]}"; do
fi
done
echo -e ""
-echo -e "${lightgreen}Steam Master Server Response${default}"
+echo -e "${bold}${lightyellow}Steam Master Server Response${default}"
fn_messages_separator
echo -e ""
-echo -e "curl -m 3 -s https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${publicip}"
+echo -e "${italic}curl -m 3 -s https://api.steampowered.com/ISteamApps/GetServersAtAddress/v0001?addr=${publicip}${default}"
echo -e ""
echo -e "Response: ${displaymasterserver}"
echo -e ""
diff --git a/lgsm/modules/command_dev_ui.sh b/lgsm/modules/command_dev_ui.sh
new file mode 100644
index 000000000..e7aa9975e
--- /dev/null
+++ b/lgsm/modules/command_dev_ui.sh
@@ -0,0 +1,110 @@
+#!/bin/bash
+# LinuxGSM command_dev_ui.sh module
+# Author: Daniel Gibbs
+# Contributors: https://linuxgsm.com/contrib
+# Website: https://linuxgsm.com
+# Description: Dev only: Assist with UI development.
+
+commandname="DEV-DEBUG"
+commandaction="Developer UI"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+fn_firstcommand_set
+
+fn_print_header
+
+# Load ANSI colors
+fn_ansi_loader
+
+fn_print_nl ""
+fn_print_nl "${lightgreen}Colours${default}"
+fn_messages_separator
+# Print supported colors
+fn_print_nl "${default}default"
+fn_print_nl "${black}black${default}"
+fn_print_nl "${red}red${default}"
+fn_print_nl "${lightred}lightred${default}"
+fn_print_nl "${green}green${default}"
+fn_print_nl "${lightgreen}lightgreen${default}"
+fn_print_nl "${yellow}yellow${default}"
+fn_print_nl "${lightyellow}lightyellow${default}"
+fn_print_nl "${blue}blue${default}"
+fn_print_nl "${lightblue}lightblue${default}"
+fn_print_nl "${magenta}magenta${default}"
+fn_print_nl "${lightmagenta}lightmagenta${default}"
+fn_print_nl "${cyan}cyan${default}"
+fn_print_nl "${lightcyan}lightcyan${default}"
+fn_print_nl "${darkgrey}darkgrey${default}"
+fn_print_nl "${lightgrey}lightgrey${default}"
+fn_print_nl "${white}white${default}"
+fn_print_nl "${bold}bold${default}"
+fn_print_nl "${dim}dim${default}"
+fn_print_nl "${italic}italic${default}"
+fn_print_nl "${underline}underline${default}"
+fn_print_nl "${reverse}reverse${default}"
+
+fn_print_nl ""
+fn_print_nl "${lightgreen}Non Interactive UI Status Messages${default}"
+fn_messages_separator
+fn_print_nl ""
+fn_print_nl "Print Message"
+fn_print_nl ""
+fn_print_nl "${lightgreen}Status Messages${default}"
+fn_messages_separator
+fn_print_dots_nl "Dots"
+fn_print_ok_nl "OK"
+fn_print_fail_nl "Fail"
+fn_print_error_nl "Error"
+fn_print_warn_nl "Warn"
+fn_print_info_nl "Info"
+fn_print_start_nl "Start"
+
+fn_print_nl ""
+fn_print_nl "${lightgreen}Interactive UI Status Messages${default}"
+fn_messages_separator
+fn_print_success_nl
+fn_print_failure_nl
+fn_print_error2_nl
+fn_print_warning_nl
+fn_print_information_nl
+
+fn_print_nl ""
+fn_print_nl "${lightgreen}EOL Status Messages${default}"
+fn_messages_separator
+
+fn_print "Print yes message with eol"
+fn_print_yes_eol_nl
+fn_print "Print no message with eol"
+fn_print_no_eol_nl
+fn_print "Print ok message with eol"
+fn_print_ok_eol_nl
+fn_print "Print fail message with eol"
+fn_print_fail_eol_nl
+fn_print "Print error message with eol"
+fn_print_error_eol_nl
+fn_print "Print warn message with eol"
+fn_print_wait_eol_nl
+fn_print "Print info message with eol"
+fn_print_warn_eol_nl
+fn_print "Print querying message with eol"
+fn_print_info_eol_nl
+fn_print "Print checking message with eol"
+fn_print_querying_eol_nl
+fn_print "Print delay message with eol"
+fn_print_checking_eol_nl
+fn_print "Print canceled message with eol"
+fn_print_delay_eol_nl
+fn_print "Print removed message with eol"
+fn_print_canceled_eol_nl
+fn_print "Print update message with eol"
+fn_print_removed_eol_nl
+fn_print "Print skip message with eol"
+fn_print_update_eol_nl
+fn_print "Print skip message with eol"
+fn_print_skip_eol_nl
+
+fn_print_nl ""
+fn_print_nl "${lightgreen}Restart warning${default}"
+fn_messages_separator
+fn_print_restart_warning
+
+core_exit.sh
diff --git a/lgsm/modules/command_fastdl.sh b/lgsm/modules/command_fastdl.sh
index 4e9378945..e3437bc1f 100644
--- a/lgsm/modules/command_fastdl.sh
+++ b/lgsm/modules/command_fastdl.sh
@@ -3,7 +3,7 @@
# Author: Daniel Gibbs
# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
-# Description: Creates a FastDL directory.
+# Description: Creates a Fastdl directory.
commandname="FASTDL"
commandaction="Fastdl"
@@ -30,18 +30,18 @@ fi
# Header
fn_print_header
-echo -e "More info: https://docs.linuxgsm.com/commands/fastdl"
-echo -e ""
+fn_print_nl "More info: ${italic}https://docs.linuxgsm.com/commands/fastdl"
+fn_print_nl ""
-# Prompts user for FastDL creation settings.
-echo -e "${commandaction} setup"
+# Prompts user for Fastdl creation settings.
+fn_print_nl "${bold}${lightyellow}${commandaction} Setup"
fn_messages_separator
# Prompt for clearing old files if directory was already here.
if [ -d "${fastdldir}" ]; then
- fn_print_warning_nl "FastDL directory already exists."
- echo -e "${fastdldir}"
- echo -e ""
+ fn_print_warning_nl "Fastdl directory already exists."
+ fn_print_nl "${fastdldir}"
+ fn_print_nl ""
if fn_prompt_yn "Overwrite existing directory?" Y; then
fn_script_log_info "Overwrite existing directory: YES"
else
@@ -63,18 +63,18 @@ fi
# Clears any fastdl directory content.
fn_clear_old_fastdl() {
- # Clearing old FastDL.
+ # Clearing old Fastdl.
if [ -d "${fastdldir}" ]; then
- echo -en "clearing existing FastDL directory ${fastdldir}..."
+ fn_print "clearing existing Fastdl directory ${fastdldir}"
rm -rf "${fastdldir:?}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
- fn_script_log_fail "Clearing existing FastDL directory ${fastdldir}"
+ fn_script_log_fail "Clearing existing Fastdl directory ${fastdldir}"
core_exit.sh
else
fn_print_ok_eol_nl
- fn_script_log_pass "Clearing existing FastDL directory ${fastdldir}"
+ fn_script_log_pass "Clearing existing Fastdl directory ${fastdldir}"
fi
fi
}
@@ -82,10 +82,10 @@ fn_clear_old_fastdl() {
fn_fastdl_dirs() {
# Check and create directories.
if [ ! -d "${webdir}" ]; then
- echo -en "creating web directory ${webdir}..."
+ fn_print "creating web directory ${webdir}"
mkdir -p "${webdir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Creating web directory ${webdir}"
core_exit.sh
@@ -95,10 +95,10 @@ fn_fastdl_dirs() {
fi
fi
if [ ! -d "${fastdldir}" ]; then
- echo -en "creating fastdl directory ${fastdldir}..."
+ fn_print "creating fastdl directory ${fastdldir}"
mkdir -p "${fastdldir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Creating fastdl directory ${fastdldir}"
core_exit.sh
@@ -125,7 +125,7 @@ fn_human_readable_file_size() {
local precision="${2}"
if [[ "${bytes}" == "1" ]]; then
- echo -e "1 byte"
+ fn_print_nl "1 byte"
else
for item in "${abbrevs[@]}"; do
local factor="${item%:*}"
@@ -145,7 +145,7 @@ fn_fastdl_preview() {
if [ -f "${tmpdir}/fastdl_files_to_compress.txt" ]; then
rm -f "${tmpdir:?}/fastdl_files_to_compress.txt"
fi
- echo -e "analysing required files"
+ fn_print_nl "analysing required files"
fn_script_log_info "Analysing required files"
# Garry's Mod
if [ "${shortname}" == "gmod" ]; then
@@ -158,13 +158,13 @@ fn_fastdl_preview() {
((fileswc++))
tput rc
tput el
- echo -e "gathering ${allowed_extention} : ${fileswc}..."
+ fn_print "gathering ${allowed_extention} : ${fileswc}"
echo -e "${ext}" >> "${tmpdir}/fastdl_files_to_compress.txt"
done < <(find . -type f -iname "${allowed_extention}")
if [ ${fileswc} != 0 ]; then
fn_print_ok_eol_nl
else
- fn_print_info_eol_nl
+ fn_print_skip_eol_nl
fi
done
# Source engine
@@ -190,12 +190,12 @@ fn_fastdl_preview() {
((fileswc++))
tput rc
tput el
- echo -e "gathering ${directory} ${allowed_extention} : ${fileswc}..."
+ fn_print "gathering ${directory} ${allowed_extention} : ${fileswc}"
echo -e "${ext}" >> "${tmpdir}/fastdl_files_to_compress.txt"
done < <(find "${systemdir}/${directory}" -type f -iname "${allowed_extention}")
tput rc
tput el
- echo -e "gathering ${directory} ${allowed_extention} : ${fileswc}..."
+ fn_print "gathering ${directory} ${allowed_extention} : ${fileswc}"
if [ ${fileswc} != 0 ]; then
fn_print_ok_eol_nl
else
@@ -206,7 +206,7 @@ fn_fastdl_preview() {
done
fi
if [ -f "${tmpdir}/fastdl_files_to_compress.txt" ]; then
- echo -e "calculating total file size..."
+ fn_print_nl "calculating total file size"
fn_sleep_time_1
totalfiles=$(wc -l < "${tmpdir}/fastdl_files_to_compress.txt")
# Calculates total file size.
@@ -214,9 +214,9 @@ fn_fastdl_preview() {
filesize=$(stat -c %s "${dufile}")
filesizetotal=$((filesizetotal + filesize))
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
- fn_script_log_fail "Calculating total file size."
+ fn_script_log_fail "Calculating total file size"
core_exit.sh
fi
done < "${tmpdir}/fastdl_files_to_compress.txt"
@@ -225,8 +225,8 @@ fn_fastdl_preview() {
fn_script_log_fail "Generating file list."
core_exit.sh
fi
- echo -e "about to compress ${totalfiles} files, total size $(fn_human_readable_file_size ${filesizetotal} 0)"
- fn_script_log_info "${totalfiles} files, total size $(fn_human_readable_file_size ${filesizetotal} 0)"
+ fn_print_nl "about to compress ${totalfiles} files, total size $(fn_human_readable_file_size "${filesizetotal}" 0)"
+ fn_script_log_info "${totalfiles} files, total size $(fn_human_readable_file_size "${filesizetotal}" 0)"
rm -f "${tmpdir:?}/fastdl_files_to_compress.txt"
if ! fn_prompt_yn "Continue?" Y; then
fn_script_log "User exited"
@@ -244,10 +244,10 @@ fn_fastdl_gmod() {
((fileswc++))
tput rc
tput el
- echo -e "copying ${allowed_extention} : ${fileswc}..."
+ fn_print "copying ${allowed_extention} : ${fileswc}"
cp --parents "${fastdlfile}" "${fastdldir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Copying ${fastdlfile} > ${fastdldir}"
core_exit.sh
@@ -259,12 +259,12 @@ fn_fastdl_gmod() {
fn_print_ok_eol_nl
fi
done
- # Correct addons directory structure for FastDL.
+ # Correct addons directory structure for Fastdl.
if [ -d "${fastdldir}/addons" ]; then
- echo -en "updating addons file structure..."
+ fn_print "updating addons file structure..."
cp -Rf "${fastdldir}"/addons/*/* "${fastdldir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Updating addons file structure"
core_exit.sh
@@ -273,11 +273,11 @@ fn_fastdl_gmod() {
fn_script_log_pass "Updating addons file structure"
fi
# Clear addons directory in fastdl.
- echo -en "clearing addons dir from fastdl dir..."
+ fn_print "clearing addons dir from fastdl dir..."
fn_sleep_time_1
rm -rf "${fastdldir:?}/addons"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Clearing addons dir from fastdl dir"
core_exit.sh
@@ -288,11 +288,11 @@ fn_fastdl_gmod() {
fi
# Correct content that may be into a lua directory by mistake like some darkrpmodification addons.
if [ -d "${fastdldir}/lua" ]; then
- echo -en "correcting DarkRP files..."
+ fn_print "correcting DarkRP files..."
fn_sleep_time_1
cp -Rf "${fastdldir}/lua/"* "${fastdldir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Correcting DarkRP files"
core_exit.sh
@@ -332,8 +332,8 @@ fn_fastdl_source() {
((fileswc++))
tput rc
tput el
- echo -e "copying ${directory} ${allowed_extention} : ${fileswc}..."
- fn_sleep_time_1
+ fn_print "copying ${directory} ${allowed_extention} : ${fileswc}"
+ fn_sleep_time
# get relative path of file in the dir
tmprelfilepath="${fastdlfile#"${systemdir}/"}"
copytodir="${tmprelfilepath%/*}"
@@ -343,7 +343,7 @@ fn_fastdl_source() {
fi
cp "${fastdlfile}" "${fastdldir}/${copytodir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Copying ${fastdlfile} > ${fastdldir}/${copytodir}"
core_exit.sh
@@ -361,8 +361,8 @@ fn_fastdl_source() {
# Builds the fastdl directory content.
fn_fastdl_build() {
- # Copy all needed files for FastDL.
- echo -e "copying files to ${fastdldir}"
+ # Copy all needed files for Fastdl.
+ fn_print_nl "copying files to ${fastdldir}"
fn_script_log_info "Copying files to ${fastdldir}"
if [ "${shortname}" == "gmod" ]; then
fn_fastdl_gmod
@@ -372,14 +372,14 @@ fn_fastdl_build() {
fi
}
-# Generate lua file that will force download any file into the FastDL directory.
+# Generate lua file that will force download any file into the Fastdl directory.
fn_fastdl_gmod_dl_enforcer() {
# Clear old lua file.
if [ -f "${luafastdlfullpath}" ]; then
- echo -en "removing existing download enforcer: ${luafastdlfile}..."
+ fn_print "removing existing download enforcer: ${luafastdlfile}"
rm -f "${luafastdlfullpath:?}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Removing existing download enforcer ${luafastdlfullpath}"
core_exit.sh
@@ -390,14 +390,14 @@ fn_fastdl_gmod_dl_enforcer() {
fi
# Generate new one if user said yes.
if [ "${luaresource}" == "on" ]; then
- echo -en "creating new download enforcer: ${luafastdlfile}..."
+ fn_print "creating new download enforcer: ${luafastdlfile}"
touch "${luafastdlfullpath}"
# Read all filenames and put them into a lua file at the right path.
while read -r line; do
echo -e "resource.AddFile( \"${line}\" )" >> "${luafastdlfullpath}"
done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \) -printf '%P\n')
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Creating new download enforcer ${luafastdlfullpath}"
core_exit.sh
@@ -408,21 +408,21 @@ fn_fastdl_gmod_dl_enforcer() {
fi
}
-# Compresses FastDL files using bzip2.
+# Compresses Fastdl files using bzip2.
fn_fastdl_bzip2() {
while read -r filetocompress; do
- echo -en "\r\033[Kcompressing ${filetocompress}..."
+ fn_print "compressing ${filetocompress}"
bzip2 -f "${filetocompress}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Compressing ${filetocompress}"
core_exit.sh
else
+ fn_print_ok_eol_nl
fn_script_log_pass "Compressing ${filetocompress}"
fi
done < <(find "${fastdldir:?}" \( -type f ! -name "*.bz2" \))
- fn_print_ok_eol_nl
}
check.sh
@@ -433,9 +433,9 @@ fn_fastdl_dirs
fn_fastdl_build
fn_fastdl_bzip2
# Finished message.
-echo -e "FastDL files are located in:"
-echo -e "${fastdldir}"
-echo -e "FastDL completed"
-fn_script_log_info "FastDL completed"
+fn_print_nl "Fastdl files are located in:"
+fn_print_nl "${fastdldir}"
+fn_print_nl "Fastdl completed"
+fn_script_log_info "Fastdl completed"
core_exit.sh
diff --git a/lgsm/modules/command_install_resources_mta.sh b/lgsm/modules/command_install_resources_mta.sh
index aecda1452..7eca4fb97 100644
--- a/lgsm/modules/command_install_resources_mta.sh
+++ b/lgsm/modules/command_install_resources_mta.sh
@@ -12,7 +12,7 @@ fn_firstcommand_set
fn_install_resources() {
echo -e ""
- echo -e "${lightyellow}Installing Default Resources${default}"
+ echo -e "${bold}${lightyellow}Installing Default Resources${default}"
fn_messages_separator
fn_fetch_file "http://mirror.mtasa.com/mtasa/resources/mtasa-resources-latest.zip" "" "" "" "${tmpdir}" "mtasa-resources-latest.zip" "nochmodx" "norun" "noforce" "nohash"
fn_dl_extract "${tmpdir}" "mtasa-resources-latest.zip" "${resourcesdir}"
diff --git a/lgsm/modules/command_mods_install.sh b/lgsm/modules/command_mods_install.sh
index d1b3fb67a..4401e2c56 100644
--- a/lgsm/modules/command_mods_install.sh
+++ b/lgsm/modules/command_mods_install.sh
@@ -6,7 +6,7 @@
# Description: List and installs available mods along with mods_list.sh and mods_core.sh.
commandname="MODS-INSTALL"
-commandaction="Installing mods"
+commandaction="Installing Mods"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/command_mods_remove.sh b/lgsm/modules/command_mods_remove.sh
index 412e07546..6dc52d95f 100644
--- a/lgsm/modules/command_mods_remove.sh
+++ b/lgsm/modules/command_mods_remove.sh
@@ -6,7 +6,7 @@
# Description: Uninstall mods along with mods_list.sh and mods_core.sh.
commandname="MODS-REMOVE"
-commandaction="Removing mods"
+commandaction="Removing Mods"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
@@ -70,8 +70,8 @@ while [ "${modfileline}" -le "${modsfilelistsize}" ]; do
if [ -f "${modinstalldir}/${currentfileremove}" ] || [ -d "${modinstalldir}/${currentfileremove}" ]; then
rm -rf "${modinstalldir:?}/${currentfileremove:?}"
- ((exitcode = $?))
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "Removing ${modinstalldir}/${currentfileremove}"
break
else
@@ -87,7 +87,7 @@ done
# Added logic not to fail since removing game specific mods (amxmodxcs) removes files that will
# not be found when removing the base (amxmodx) mod
if [ "${modcommand}" != "amxmodx" ]; then
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
@@ -102,7 +102,7 @@ echo -en "removing ${modcommand}-files.txt..."
fn_sleep_time_1
rm -rf "${modsdir:?}/${modcommand}-files.txt"
exitcode=$?
-if [ "${exitcode}" != 0 ]; then
+if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "Removing ${modsdir}/${modcommand}-files.txt"
fn_print_fail_eol_nl
core_exit.sh
@@ -117,7 +117,7 @@ fn_sleep_time_1
sed -i "/^${modcommand}$/d" "${modsinstalledlistfullpath}"
exitcode=$?
-if [ "${exitcode}" != 0 ]; then
+if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "Removing ${modcommand} from ${modsinstalledlist}"
fn_print_fail_eol_nl
core_exit.sh
diff --git a/lgsm/modules/command_mods_update.sh b/lgsm/modules/command_mods_update.sh
index ca81dd947..10279b67b 100644
--- a/lgsm/modules/command_mods_update.sh
+++ b/lgsm/modules/command_mods_update.sh
@@ -6,7 +6,7 @@
# Description: Updates installed mods along with mods_list.sh and mods_core.sh.
commandname="MODS-UPDATE"
-commandaction="Updating mods"
+commandaction="Updating Mods"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index a9691fb98..78df55330 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -18,10 +18,10 @@ fn_monitor_check_monitoring() {
date '+%s' > "${lockdir:?}/${selfname}-monitoring.lock"
elif [ ! -f "${lockdir}/${selfname}-monitoring.lock" ]; then
# Monitor does not run if lockfile is not found.
- fn_print_dots "Checking lockfile: "
+ fn_print_dots "Checking lockfile:"
fn_print_checking_eol
fn_script_log_info "Checking lockfile: CHECKING"
- fn_print_error "Checking lockfile: No lockfile found: "
+ fn_print_error "Checking lockfile: No lockfile found:"
fn_print_error_eol_nl
fn_script_log_error "Checking lockfile: No lockfile found: ERROR"
echo -e "* Start ${selfname} to run monitor."
@@ -31,10 +31,10 @@ fn_monitor_check_monitoring() {
fn_monitor_check_install() {
if [ "$(pgrep -fc -u "${USER}" "/bin/bash ./${selfname} install")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} i")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} auto-install")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} ai")" != "0" ]; then
- fn_print_dots "Checking installer: "
+ fn_print_dots "Checking installer:"
fn_print_checking_eol
fn_script_log_info "Checking installer: CHECKING"
- fn_print_info "Checking installer: LinuxGSM is installing: "
+ fn_print_info "Checking installer: LinuxGSM is installing:"
fn_print_info_eol_nl
fn_script_log_pass "Checking installer: LinuxGSM is installing"
core_exit.sh
@@ -43,9 +43,9 @@ fn_monitor_check_install() {
fn_monitor_check_debug() {
if [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} debug")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} d")" != "0" ]; then
- fn_print_dots "Checking debug: "
+ fn_print_dots "Checking debug:"
fn_print_checking_eol
- fn_print_info "Checking debug: Debug is running: "
+ fn_print_info "Checking debug: Debug is running:"
fn_print_info_eol_nl
fn_script_log_pass "Checking debug: Debug is running"
core_exit.sh
@@ -54,9 +54,9 @@ fn_monitor_check_debug() {
fn_monitor_check_details() {
if [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} details")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} dt")" != "0" ]; then
- fn_print_dots "Checking details: "
+ fn_print_dots "Checking details:"
fn_print_checking_eol
- fn_print_info "Checking details: Details is running: "
+ fn_print_info "Checking details: Details is running:"
fn_print_info_eol_nl
fn_script_log_pass "Checking details: Details is running"
core_exit.sh
@@ -67,9 +67,9 @@ fn_monitor_check_starting() {
# Remove stale lockfile.
if [ -f "${lockdir}/${selfname}-starting.lock" ]; then
if [ "$(find "${lockdir}/${selfname}-starting.lock" -mmin +5)" ]; then
- fn_print_dots "Checking start: "
+ fn_print_dots "Checking start:"
fn_print_checking_eol
- fn_print_warn "Checking start: Removing stale lockfile: "
+ fn_print_warn "Checking start: Removing stale lockfile:"
fn_print_warn_eol_nl
fn_script_log_warn "Checking start: Removing stale lockfile"
rm -f "${lockdir:?}/${selfname}-starting.lock"
@@ -77,9 +77,9 @@ fn_monitor_check_starting() {
fi
if [ -f "${lockdir}/${selfname}-starting.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} start")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} s")" != "0" ]]; then
- fn_print_dots "Checking start: "
+ fn_print_dots "Checking start:"
fn_print_checking_eol
- fn_print_info "Checking start: LinuxGSM is starting: "
+ fn_print_info "Checking start: LinuxGSM is starting:"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: LinuxGSM is starting"
core_exit.sh
@@ -90,9 +90,9 @@ fn_monitor_check_stopping() {
# Remove stale lockfile.
if [ -f "${lockdir}/${selfname}-stopping.lock" ]; then
if [ "$(find "${lockdir}/${selfname}-stopping.lock" -mmin +5)" ]; then
- fn_print_dots "Checking stop: "
+ fn_print_dots "Checking stop:"
fn_print_checking_eol
- fn_print_warn "Checking stop: Removing stale lockfile: "
+ fn_print_warn "Checking stop: Removing stale lockfile:"
fn_print_warn_eol_nl
fn_script_log_warn "Checking stop: Removing stale lockfile"
rm -f "${lockdir:?}/${selfname}-stopping.lock"
@@ -100,9 +100,9 @@ fn_monitor_check_stopping() {
fi
if [ -f "${lockdir}/${selfname}-stopping.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} stop")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} s")" != "0" ]]; then
- fn_print_dots "Checking stop: "
+ fn_print_dots "Checking stop:"
fn_print_checking_eol
- fn_print_info "Checking stop: LinuxGSM is stopping: "
+ fn_print_info "Checking stop: LinuxGSM is stopping:"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: LinuxGSM is stopping"
core_exit.sh
@@ -113,9 +113,9 @@ fn_monitor_check_backup() {
# Remove stale lockfile.
if [ -f "${lockdir}/backup.lock" ]; then
if [ "$(find "${lockdir}/backup.lock" -mmin +60)" ]; then
- fn_print_dots "Checking backup: "
+ fn_print_dots "Checking backup:"
fn_print_checking_eol
- fn_print_warn "Checking backup: Removing stale lockfile: "
+ fn_print_warn "Checking backup: Removing stale lockfile:"
fn_print_warn_eol
fn_script_log_warn "Checking backup: Removing stale lockfile"
rm -f "${lockdir:?}/backup.lock"
@@ -123,9 +123,9 @@ fn_monitor_check_backup() {
fi
if [ -f "${lockdir}/backup.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} backup")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} b")" != "0" ]]; then
- fn_print_dots "Checking backup: "
+ fn_print_dots "Checking backup:"
fn_print_checking_eol
- fn_print_info "Checking backup: Backup is running: "
+ fn_print_info "Checking backup: Backup is running:"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: Backup is running"
core_exit.sh
@@ -136,9 +136,9 @@ fn_monitor_check_update() {
# Remove stale lockfile.
if [ -f "${lockdir}/update.lock" ]; then
if [ "$(find "${lockdir}/update.lock" -mmin +15)" ]; then
- fn_print_dots "Checking update: "
+ fn_print_dots "Checking update:"
fn_print_checking_eol
- fn_print_warn "Checking update: Removing stale lockfile: "
+ fn_print_warn "Checking update: Removing stale lockfile:"
fn_print_warn_eol_nl
fn_script_log_warn "Checking update: Removing stale lockfile"
rm -f "${lockdir:?}/update.lock"
@@ -146,9 +146,9 @@ fn_monitor_check_update() {
fi
if [ -f "${lockdir}/update.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} update")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} validate")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} v")" != "0" || "$(pgrep -fc force-update "${USER}" "/bin/bash ./${selfname} fu")" != "0" ]]; then
- fn_print_dots "Checking update: "
+ fn_print_dots "Checking update:"
fn_print_checking_eol
- fn_print_info "Checking update: LinuxGSM is updating the game server: "
+ fn_print_info "Checking update: LinuxGSM is updating the game server:"
fn_print_info_eol_nl
fn_script_log_pass "Checking update: LinuxGSM is updating the game server"
core_exit.sh
@@ -159,10 +159,10 @@ fn_monitor_check_update() {
fn_monitor_check_update_source() {
if [ -f "${consolelogdir}/${selfname}-console.log" ] && [ "${engine}" == "source" ]; then
if grep -q "Your server needs to be restarted in order to receive the latest update." "${consolelogdir}/${selfname}-console.log"; then
- fn_print_dots "Checking update: "
+ fn_print_dots "Checking update:"
fn_print_checking_eol
fn_script_log_info "Checking update: CHECKING"
- fn_print_ok "Checking update: "
+ fn_print_ok "Checking update:"
fn_print_ok_eol_nl
fn_script_log_info "Checking update: ${selfname} has requested an update and needs to be restarted"
alert="update-request"
@@ -174,7 +174,7 @@ fn_monitor_check_update_source() {
}
fn_monitor_check_session() {
- fn_print_dots "Checking session: "
+ fn_print_dots "Checking session"
fn_print_checking_eol
fn_script_log_info "Checking session: CHECKING"
# Tmux session width and height needs to be reviewed as may no longer be required.
@@ -182,7 +182,7 @@ fn_monitor_check_session() {
sessionheight="23"
# Check for PIDS with identical tmux sessions running.
if [ "$(pgrep -fcx "tmux -L ${socketname} new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" -ge "2" ]; then
- fn_print_error "Checking session: There are PIDS with identical tmux sessions running: "
+ fn_print_error "Checking session: There are PIDS with identical tmux sessions running:"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: There are PIDS with identical tmux sessions running"
@@ -192,7 +192,7 @@ fn_monitor_check_session() {
core_exit.sh
# Check for tmux pids with the same tmux session and socket names. This will reduce issues with migration to release v23.5.0. #4296
elif [ "$(pgrep -fc -u "${USER}" "tmux -L ${sessionname} new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" != "0" ]; then
- fn_print_error "Checking session: PIDS with the same tmux session and socket names are running: "
+ fn_print_error "Checking session: PIDS with the same tmux session and socket names are running:"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: PIDS with the same tmux session and socket names are running"
@@ -202,7 +202,7 @@ fn_monitor_check_session() {
core_exit.sh
# Check for tmux pids that are using the old type of tmux session. This will reduce issues with migration to release v23.5.0. #4296
elif [ "$(pgrep -fc -u "${USER}" "tmux new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" != "0" ]; then
- fn_print_error "Checking session: PIDS with old type tmux session are running: "
+ fn_print_error "Checking session: PIDS with old type tmux session are running:"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: PIDS with old type tmux session are running"
@@ -211,7 +211,7 @@ fn_monitor_check_session() {
command_restart.sh
core_exit.sh
elif [ "${status}" != "0" ]; then
- fn_print_ok "Checking session: "
+ fn_print_ok "Checking session"
fn_print_ok_eol_nl
fn_script_log_pass "Checking session: OK"
# send LinuxGSM stats if monitor is OK.
@@ -219,7 +219,7 @@ fn_monitor_check_session() {
info_stats.sh
fi
else
- fn_print_error "Checking session: "
+ fn_print_error "Checking session"
fn_print_fail_eol_nl
fn_script_log_fail "Checking session: FAIL"
alert="monitor-session"
@@ -233,7 +233,7 @@ fn_monitor_check_session() {
# Monitor will check queryport is set before continuing.
fn_monitor_check_queryport() {
if [ -z "${queryport}" ] || [ "${queryport}" == "0" ]; then
- fn_print_dots "Checking port: "
+ fn_print_dots "Checking port:"
fn_print_checking_eol
fn_script_log_info "Checking port: CHECKING"
if [ -n "${rconenabled}" ] && [ "${rconenabled}" != "true" ] && [ "${shortname}" == "av" ]; then
@@ -266,12 +266,12 @@ fn_monitor_query() {
totalseconds=0
for queryattempt in {1..5}; do
for queryip in "${queryips[@]}"; do
- fn_print_dots "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_dots "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}"
fn_print_querying_eol
fn_script_log_info "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : QUERYING"
# querydelay
if [ "$(head -n 1 "${lockdir}/${selfname}-started.lock")" -gt "$(date "+%s" -d "${querydelay} mins ago")" ]; then
- fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_ok "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}"
fn_print_delay_eol_nl
fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : DELAY"
fn_script_log_info "Query bypassed: ${gameservername} started less than ${querydelay} minutes ago"
@@ -293,7 +293,7 @@ fn_monitor_query() {
if [ "${querystatus}" == "0" ]; then
# Server query OK.
- fn_print_ok "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_ok "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}"
fn_print_ok_eol_nl
fn_script_log_pass "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : OK"
monitorpass=1
@@ -323,14 +323,14 @@ fn_monitor_query() {
core_exit.sh
else
# Server query FAIL.
- fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}"
fn_print_fail_eol
fn_script_log_warn "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : FAIL"
# Monitor will try gamedig (if supported) for first 30s then gsquery before restarting.
# gsquery will fail if longer than 60s
if [ "${totalseconds}" -ge "59" ]; then
# Monitor will FAIL if over 60s and trigger gane server reboot.
- fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}: "
+ fn_print_fail "Querying port: ${querymethod}: ${queryip}:${queryport} : ${totalseconds}/${queryattempt}"
fn_print_fail_eol_nl
fn_script_log_warn "Querying port: ${querymethod}: ${queryip}:${queryport} : ${queryattempt} : FAIL"
# Send alert if enabled.
diff --git a/lgsm/modules/command_postdetails.sh b/lgsm/modules/command_postdetails.sh
index 6626d51a7..f9e93be4a 100644
--- a/lgsm/modules/command_postdetails.sh
+++ b/lgsm/modules/command_postdetails.sh
@@ -6,20 +6,20 @@
# Description: Strips sensitive information out of Details output.
commandname="POST-DETAILS"
-commandaction="Posting details"
+commandaction="Post Details"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
-posttarget="https://termbin.com"
-
-# source all of the modules defined in the details command.
-info_messages.sh
-
fn_bad_postdetailslog() {
fn_print_fail_nl "Unable to create temporary file ${postdetailslog}."
core_exit.sh
}
+fn_print_header
+
+# source all of the modules defined in the details command.
+info_messages.sh
+
# Remove any existing postdetails.log file.
if [ -f "${postdetailslog}" ]; then
rm -f "${postdetailslog:?}"
@@ -68,7 +68,7 @@ pdurl="${link}"
if [ "${firstcommandname}" == "POST-DETAILS" ]; then
echo -e ""
echo -e "Please share the following url for support: "
- echo -e "${pdurl}"
+ echo -e "${italic}${pdurl}${default}"
fi
fn_script_log_info "${pdurl}"
alerturl="${pdurl}"
diff --git a/lgsm/modules/command_send.sh b/lgsm/modules/command_send.sh
index e31452707..de021599d 100644
--- a/lgsm/modules/command_send.sh
+++ b/lgsm/modules/command_send.sh
@@ -26,8 +26,8 @@ if [ "${status}" != "0" ]; then
fi
echo ""
fn_print_dots "Sending command to console: \"${commandtosend}\""
- tmux -L "${socketname}" send-keys -t "${sessionname}" "${commandtosend}" ENTER
fn_print_ok_nl "Sending command to console: \"${commandtosend}\""
+ tmux -L "${socketname}" send-keys -t "${sessionname}" "${commandtosend}" ENTER
fn_script_log_pass "Command \"${commandtosend}\" sent to console"
else
fn_print_error_nl "Server not running"
diff --git a/lgsm/modules/command_skeleton.sh b/lgsm/modules/command_skeleton.sh
index ca32610e9..b9f51205a 100644
--- a/lgsm/modules/command_skeleton.sh
+++ b/lgsm/modules/command_skeleton.sh
@@ -16,7 +16,7 @@ check.sh
# Find all directorys and create them in the skel directory
find "${rootdir}" -type d -not \( -path ./skel -prune \) | cpio -pdvm skel 2> /dev/null
exitcode=$?
-if [ "${exitcode}" != 0 ]; then
+if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_nl "Creating skeleton directory"
fn_script_log_fail "Creating skeleton directory"
else
diff --git a/lgsm/modules/command_sponsor.sh b/lgsm/modules/command_sponsor.sh
index e7aeeda95..1915aa328 100755
--- a/lgsm/modules/command_sponsor.sh
+++ b/lgsm/modules/command_sponsor.sh
@@ -11,7 +11,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
fn_print_ascii_logo
-echo -e "${lightyellow}Support LinuxGSM${default}"
+echo -e "${bold}${lightyellow}Support LinuxGSM${default}"
fn_messages_separator
echo -e ""
echo -e "Been using LinuxGSM?"
diff --git a/lgsm/modules/command_start.sh b/lgsm/modules/command_start.sh
index c2be7ed2f..a4e07b44b 100644
--- a/lgsm/modules/command_start.sh
+++ b/lgsm/modules/command_start.sh
@@ -127,12 +127,12 @@ fn_start_tmux() {
echo -e ""
echo -e " usermod -G tty $(whoami)"
echo -e ""
- echo -e "https://linuxgsm.com/tmux-op-perm"
+ echo -e "${italic}https://linuxgsm.com/tmux-op-perm"
fn_script_log_info "https://linuxgsm.com/tmux-op-perm"
else
echo -e "No known fix currently. Please log an issue."
fn_script_log_info "No known fix currently. Please log an issue."
- echo -e "https://linuxgsm.com/support"
+ echo -e "${italic}https://linuxgsm.com/support"
fn_script_log_info "https://linuxgsm.com/support"
fi
fi
@@ -176,7 +176,7 @@ check.sh
# If the server already started dont start again.
if [ "${status}" != "0" ]; then
fn_print_dots "${servername}"
- fn_print_info_nl "${servername} is already running"
+ fn_print_skip_nl "${servername} is already running"
fn_script_log_error "${servername} is already running"
if [ -z "${exitbypass}" ]; then
# Remove starting lockfile when command ends.
diff --git a/lgsm/modules/command_stop.sh b/lgsm/modules/command_stop.sh
index 84f5998cd..f1edc3544 100644
--- a/lgsm/modules/command_stop.sh
+++ b/lgsm/modules/command_stop.sh
@@ -20,7 +20,7 @@ fn_stop_graceful_ctrlc() {
for seconds in {1..30}; do
check_status.sh
if [ "${status}" == "0" ]; then
- fn_print_ok "Graceful: CTRL+c: ${seconds}: "
+ fn_print_ok "Graceful: CTRL+c: ${seconds}"
fn_print_ok_eol_nl
fn_script_log_pass "Graceful: CTRL+c: OK: ${seconds} seconds"
if [ "${statusalert}" == "on" ] && [ "${firstcommandname}" == "STOP" ]; then
@@ -52,7 +52,7 @@ fn_stop_graceful_cmd() {
for ((seconds = 1; seconds <= ${2}; seconds++)); do
check_status.sh
if [ "${status}" == "0" ]; then
- fn_print_ok "Graceful: sending \"${1}\": ${seconds}: "
+ fn_print_ok "Graceful: sending \"${1}\": ${seconds}"
fn_print_ok_eol_nl
fn_script_log_pass "Graceful: sending \"${1}\": OK: ${seconds} seconds"
if [ "${statusalert}" == "on" ] && [ "${firstcommandname}" == "STOP" ]; then
@@ -85,7 +85,7 @@ fn_stop_graceful_goldsrc() {
fn_sleep_time_1
fn_print_dots "Graceful: sending \"quit\": ${seconds}"
done
- fn_print_ok "Graceful: sending \"quit\": ${seconds}: "
+ fn_print_ok "Graceful: sending \"quit\": ${seconds}"
fn_print_ok_eol_nl
fn_script_log_pass "Graceful: sending \"quit\": OK: ${seconds} seconds"
if [ "${statusalert}" == "on" ] && [ "${firstcommandname}" == "STOP" ]; then
@@ -297,7 +297,7 @@ fn_stop_graceful_avorion() {
for seconds in {1..30}; do
check_status.sh
if [ "${status}" == "0" ]; then
- fn_print_ok "Graceful: /save /stop: ${seconds}: "
+ fn_print_ok "Graceful: /save /stop: ${seconds}"
fn_print_ok_eol_nl
fn_script_log_pass "Graceful: /save /stop: OK: ${seconds} seconds"
if [ "${statusalert}" == "on" ] && [ "${firstcommandname}" == "STOP" ]; then
@@ -370,7 +370,7 @@ fn_stop_tmux() {
# Checks if the server is already stopped.
fn_stop_pre_check() {
if [ "${status}" == "0" ]; then
- fn_print_info_nl "${servername} is already stopped"
+ fn_print_skip_nl "${servername} is already stopped"
fn_script_log_info "${servername} is already stopped"
else
# Select graceful shutdown.
diff --git a/lgsm/modules/command_ts3_server_pass.sh b/lgsm/modules/command_ts3_server_pass.sh
index 807d025b7..f5fad684e 100644
--- a/lgsm/modules/command_ts3_server_pass.sh
+++ b/lgsm/modules/command_ts3_server_pass.sh
@@ -6,7 +6,7 @@
# Description: Changes TS3 serveradmin password.
commandname="CHANGE-PASSWORD"
-commandaction="Changing password"
+commandaction="Changing Password"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/command_update_linuxgsm.sh b/lgsm/modules/command_update_linuxgsm.sh
index eb4226ab8..3299be509 100644
--- a/lgsm/modules/command_update_linuxgsm.sh
+++ b/lgsm/modules/command_update_linuxgsm.sh
@@ -27,10 +27,11 @@ fn_script_log_info "Selecting repo"
# Select remotereponame
curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
-
-if [ $? != "0" ]; then
- curl curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
- if [ $? != "0" ]; then
+exitcode=$?
+if [ "${exitcode}" -ne "0" ]; then
+ curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
+ exitcode=$?
+ if [ "${exitcode}" -ne "0" ]; then
fn_print_fail_nl "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
fn_script_log_fail "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
core_exit.sh
@@ -44,16 +45,17 @@ else
fi
# Check linuxsm.sh
-echo -en "checking ${remotereponame} linuxgsm.sh...\c"
+echo -en "checking ${remotereponame} script [ ${italic}linuxgsm.sh${default} ]\c"
if [ "${remotereponame}" == "GitHub" ]; then
curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh" 1> /dev/null
else
curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh" 1> /dev/null
fi
-if [ $? != "0" ]; then
+exitcode=$?
+if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Checking ${remotereponame} linuxgsm.sh"
- fn_script_log_fail "Curl returned error: $?"
+ fn_script_log_fail "Curl returned error: ${exitcode}"
core_exit.sh
fi
@@ -65,41 +67,42 @@ fi
if [ "${tmp_script_diff}" != "" ]; then
fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} linuxgsm.sh"
+ fn_script_log "Checking ${remotereponame} script linuxgsm.sh"
rm -f "${tmpdir:?}/linuxgsm.sh"
fn_fetch_file_github "" "linuxgsm.sh" "${tmpdir}" "nochmodx" "norun" "noforcedl" "nohash"
else
- fn_print_ok_eol_nl
- fn_script_log_pass "Checking ${remotereponame} linuxgsm.sh"
+ fn_print_skip_eol_nl
+ fn_script_log_pass "Checking ${remotereponame} script linuxgsm.sh"
fi
# Check gameserver.sh
# Compare gameserver.sh against linuxgsm.sh in the tmp dir.
# Ignoring server specific vars.
-echo -en "checking ${selfname}...\c"
+echo -en "checking script [ ${italic}${selfname}${default} ]\c"
fn_script_log_info "Checking ${selfname}"
script_diff=$(diff <(sed '\/shortname/d;\/gameservername/d;\/gamename/d;\/githubuser/d;\/githubrepo/d;\/githubbranch/d' "${tmpdir}/linuxgsm.sh") <(sed '\/shortname/d;\/gameservername/d;\/gamename/d;\/githubuser/d;\/githubrepo/d;\/githubbranch/d' "${rootdir}/${selfname}"))
if [ "${script_diff}" != "" ]; then
fn_print_update_eol_nl
- fn_script_log_update "Checking ${selfname}"
- echo -en "backup ${selfname}...\c"
- fn_script_log_info "Backup ${selfname}"
+ fn_script_log "Checking script ${selfname}"
+ echo -en "backup ${selfname}\c"
+ fn_script_log_info "Backup script ${selfname}"
if [ ! -d "${backupdir}/script" ]; then
mkdir -p "${backupdir}/script"
fi
cp "${rootdir}/${selfname}" "${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
- if [ $? != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Backup ${selfname}"
core_exit.sh
else
fn_print_ok_eol_nl
- fn_script_log_pass "Backup ${selfname}"
- echo -e "backup location ${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
+ fn_script_log_pass "Backup script${selfname}"
+ echo -e "backup location [ ${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak ]"
fn_script_log_pass "Backup location ${backupdir}/script/${selfname}-$(date +"%m_%d_%Y_%M").bak"
fi
- echo -en "copying ${selfname}...\c"
+ echo -en "copying ${selfname}"
fn_script_log_info "Copying ${selfname}"
cp "${tmpdir}/linuxgsm.sh" "${rootdir}/${selfname}"
sed -i "s+shortname=\"core\"+shortname=\"${shortname}\"+g" "${rootdir}/${selfname}"
@@ -109,7 +112,8 @@ if [ "${script_diff}" != "" ]; then
sed -i "s+githubrepo=\"LinuxGSM\"+githubrepo=\"${githubrepo}\"+g" "${rootdir}/${selfname}"
sed -i "s+githubbranch=\"master\"+githubbranch=\"${githubbranch}\"+g" "${rootdir}/${selfname}"
- if [ $? != "0" ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "copying ${selfname}"
core_exit.sh
@@ -118,22 +122,23 @@ if [ "${script_diff}" != "" ]; then
fn_script_log_pass "copying ${selfname}"
fi
else
- fn_print_ok_eol_nl
+ fn_print_skip_eol_nl
fn_script_log_info "Checking ${selfname}"
fi
# Check _default.cfg.
-echo -en "checking ${remotereponame} config _default.cfg...\c"
+echo -en "checking ${remotereponame} config [ ${italic}_default.cfg${default} ]\c"
fn_script_log_info "Checking ${remotereponame} config _default.cfg"
if [ "${remotereponame}" == "GitHub" ]; then
curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
else
curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
fi
-if [ $? != "0" ]; then
+exitcode=$?
+if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Checking ${remotereponame} config _default.cfg"
- fn_script_log_fail "Curl returned error: $?"
+ fn_script_log_fail "Curl returned error: ${exitcode}"
core_exit.sh
fi
@@ -145,29 +150,30 @@ fi
if [ "${config_file_diff}" != "" ]; then
fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} config _default.cfg"
+ fn_script_log "Checking ${remotereponame} config _default.cfg"
rm -f "${configdirdefault:?}/config-lgsm/${gameservername:?}/_default.cfg"
fn_fetch_file_github "lgsm/config-default/config-lgsm/${gameservername}" "_default.cfg" "${configdirdefault}/config-lgsm/${gameservername}" "nochmodx" "norun" "noforce" "nohash"
alert="config"
alert.sh
else
- fn_print_ok_eol_nl
+ fn_print_skip_eol_nl
fn_script_log_pass "Checking ${remotereponame} config _default.cfg"
fi
# Check distro csv. ${datadir}/${distroid}-${distroversioncsv}.csv
if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
- echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
+ echo -en "checking ${remotereponame} config [ ${italic}${distroid}-${distroversioncsv}.csv${default} ]\c"
fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
if [ "${remotereponame}" == "GitHub" ]; then
curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
else
curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
fi
- if [ $? != "0" ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
- fn_script_log_fail "Curl returned error: $?"
+ fn_script_log_fail "Curl returned error: ${exitcode}"
core_exit.sh
fi
@@ -179,11 +185,11 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
if [ "${config_file_diff}" != "" ]; then
fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
+ fn_script_log "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
rm -f "${datadir:?}/${distroid}-${distroversioncsv}.csv"
fn_fetch_file_github "${datadir}" "${distroid}-${distroversioncsv}.csv" "${datadir}" "nochmodx" "norun" "noforce" "nohash"
else
- fn_print_ok_eol_nl
+ fn_print_skip_eol_nl
fn_script_log_pass "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
fi
fi
@@ -195,14 +201,15 @@ if [ -n "${modulesdir}" ]; then
for modulefile in *; do
# check if module exists in the repo and remove if missing.
# commonly used if module names change.
- echo -en "checking ${remotereponame} module ${modulefile}...\c"
+ echo -en "checking ${remotereponame} module [ ${italic}${modulefile}${default} ]\c"
github_file_url_dir="lgsm/modules"
if [ "${remotereponame}" == "GitHub" ]; then
curl ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
else
curl ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
fi
- if [ $? != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_error_eol_nl
fn_script_log_error "Checking ${remotereponame} module ${modulefile}"
echo -en "removing module ${modulefile}...\c"
@@ -225,11 +232,11 @@ if [ -n "${modulesdir}" ]; then
# results
if [ "${module_file_diff}" != "" ]; then
fn_print_update_eol_nl
- fn_script_log_update "Checking ${remotereponame} module ${modulefile}"
+ fn_script_log "Checking ${remotereponame} module ${modulefile}"
rm -rf "${modulesdir:?}/${modulefile}"
fn_update_module
else
- fn_print_ok_eol_nl
+ fn_print_skip_eol_nl
fn_script_log_pass "Checking ${remotereponame} module ${modulefile}"
fi
fi
diff --git a/lgsm/modules/command_validate.sh b/lgsm/modules/command_validate.sh
index e35749924..30c20e96e 100644
--- a/lgsm/modules/command_validate.sh
+++ b/lgsm/modules/command_validate.sh
@@ -11,18 +11,18 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
fn_validate() {
- fn_print_warn "Validate might overwrite some customised files"
+ fn_print_warn ": SteamCMD: Validate might overwrite some customised files"
fn_script_log_warn "${commandaction} server: Validate might overwrite some customised files"
totalseconds=3
for seconds in {3..1}; do
- fn_print_warn "Validate might overwrite some customised files: ${totalseconds}"
+ fn_print_warn ": SteamCMD: Validate might overwrite some customised files: ${totalseconds}"
totalseconds=$((totalseconds - 1))
fn_sleep_time_1
if [ "${seconds}" == "0" ]; then
break
fi
done
- fn_print_warn_nl "Validate might overwrite some customised files"
+ fn_print_warn_nl ": SteamCMD: Validate might overwrite some customised files"
date '+%s' > "${lockdir:?}/update.lock"
fn_dl_steamcmd
}
diff --git a/lgsm/modules/command_wipe.sh b/lgsm/modules/command_wipe.sh
index daf9270e6..21023d17d 100644
--- a/lgsm/modules/command_wipe.sh
+++ b/lgsm/modules/command_wipe.sh
@@ -13,7 +13,7 @@ fn_firstcommand_set
# Provides an exit code upon error.
fn_wipe_exit_code() {
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
else
@@ -29,14 +29,14 @@ fn_wipe_files() {
# Remove Map files
if [ -n "${serverwipe}" ] || [ -n "${mapwipe}" ]; then
if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ]; then
- echo -en "removing .map file(s)..."
+ fn_print "removing .map file(s)..."
fn_script_log_info "Removing *.map file(s)"
fn_sleep_time
find "${serveridentitydir:?}" -type f -name "*.map" -printf "%f\n" >> "${lgsmlog}"
find "${serveridentitydir:?}" -type f -name "*.map" -delete | tee -a "${lgsmlog}"
fn_wipe_exit_code
else
- echo -e "no .map file(s) to remove"
+ fn_print_nl "no .map file(s) to remove"
fn_sleep_time
fn_script_log_pass "no .map file(s) to remove"
fi
@@ -44,14 +44,14 @@ fn_wipe_files() {
# Remove Save files.
if [ -n "${serverwipe}" ] || [ -n "${mapwipe}" ]; then
if [ -n "$(find "${serveridentitydir}" -type f -name "*.sav*")" ]; then
- echo -en "removing .sav file(s)..."
+ fn_print "removing .sav file(s)..."
fn_script_log_info "Removing .sav file(s)"
fn_sleep_time
find "${serveridentitydir:?}" -type f -name "*.sav*" -printf "%f\n" >> "${lgsmlog}"
find "${serveridentitydir:?}" -type f -name "*.sav*" -delete
fn_wipe_exit_code
else
- echo -e "no .sav file(s) to remove"
+ fn_print_nl "no .sav file(s) to remove"
fn_script_log_pass "no .sav file(s) to remove"
fn_sleep_time
fi
@@ -60,14 +60,14 @@ fn_wipe_files() {
# Excluding player.tokens.db for Rust+.
if [ -n "${serverwipe}" ]; then
if [ -n "$(find "${serveridentitydir}" -type f ! -name 'player.tokens.db' -name "*.db")" ]; then
- echo -en "removing .db file(s)..."
+ fn_print "removing .db file(s)..."
fn_script_log_info "Removing .db file(s)"
fn_sleep_time
find "${serveridentitydir:?}" -type f ! -name 'player.tokens.db' -name "*.db" -printf "%f\n" >> "${lgsmlog}"
find "${serveridentitydir:?}" -type f ! -name 'player.tokens.db' -name "*.db" -delete
fn_wipe_exit_code
else
- echo -e "no .db file(s) to remove"
+ fn_print_nl "no .db file(s) to remove"
fn_sleep_time
fn_script_log_pass "no .db file(s) to remove"
fi
@@ -104,13 +104,13 @@ fn_full_wipe_warning() {
fn_print_warn_nl "Server wipe will reset the map data and remove blueprint data"
}
-# Will change the seed if the seed is not defined by the user.
+# If the seed is not defined by the user, generate a seed file.
fn_wipe_random_seed() {
if [ -f "${datadir}/${selfname}-seed.txt" ] && [ -n "${randomseed}" ]; then
shuf -i 1-2147483647 -n 1 > "${datadir}/${selfname}-seed.txt"
seed=$(cat "${datadir}/${selfname}-seed.txt")
randomseed=1
- echo -en "generating new random seed (${cyan}${seed}${default})..."
+ fn_print "generating new random seed (${cyan}${seed}${default})..."
fn_script_log_pass "Generating new random seed (${cyan}${seed}${default})"
fn_sleep_time
fn_print_ok_eol_nl
@@ -120,21 +120,21 @@ fn_wipe_random_seed() {
# A summary of what wipe is going to do.
fn_wipe_details() {
fn_print_information_nl "Wipe does not remove Rust+ data."
- echo -en "* Wipe map data: "
+ fn_print "* Wipe map data "
if [ -n "${serverwipe}" ] || [ -n "${mapwipe}" ]; then
fn_print_yes_eol_nl
else
fn_print_no_eol_nl
fi
- echo -en "* Wipe blueprint data: "
+ fn_print "* Wipe blueprint data "
if [ -n "${serverwipe}" ]; then
fn_print_yes_eol_nl
else
fn_print_no_eol_nl
fi
- echo -en "* Change Procedural Map seed: "
+ fn_print "* Change Procedural Map seed "
if [ -n "${randomseed}" ]; then
fn_print_yes_eol_nl
else
@@ -142,10 +142,9 @@ fn_wipe_details() {
fi
}
-fn_print_dots ""
check.sh
fix_rust.sh
-
+fn_print_dots ""
# Check if there is something to wipe.
if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ] || [ -n "$(find "${serveridentitydir}" -type f -name "*.sav*")" ] && [ -n "$(find "${serveridentitydir}" -type f ! -name 'player.tokens.db' -name "*.db")" ]; then
if [ -n "${serverwipe}" ]; then
@@ -165,7 +164,7 @@ if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ] || [ -n "$(find
fn_firstcommand_reset
fn_wipe_files
fn_wipe_random_seed
- fn_print_complete_nl "${wipetype}"
+ fn_print_success_nl "${wipetype}"
fn_script_log_pass "${wipetype}"
alert="wipe"
alert.sh
@@ -175,7 +174,7 @@ if [ -n "$(find "${serveridentitydir}" -type f -name "*.map")" ] || [ -n "$(find
else
fn_wipe_files
fn_wipe_random_seed
- fn_print_complete_nl "${wipetype}"
+ fn_print_success_nl "${wipetype}"
fn_script_log_pass "${wipetype}"
alert="wipe"
alert.sh
diff --git a/lgsm/modules/compress_unreal2_maps.sh b/lgsm/modules/compress_unreal2_maps.sh
index 4469aca40..58824cbc7 100644
--- a/lgsm/modules/compress_unreal2_maps.sh
+++ b/lgsm/modules/compress_unreal2_maps.sh
@@ -6,7 +6,7 @@
# Description: Compresses unreal maps.
commandname="MAP-COMPRESSOR"
-commandaction="Compressing maps"
+commandaction="Compressing Maps"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/compress_ut99_maps.sh b/lgsm/modules/compress_ut99_maps.sh
index 23a93b3b7..885c32d9a 100644
--- a/lgsm/modules/compress_ut99_maps.sh
+++ b/lgsm/modules/compress_ut99_maps.sh
@@ -6,7 +6,7 @@
# Description: Compresses unreal maps.
commandname="MAP-COMPRESSOR"
-commandaction="Compressing maps"
+commandaction="Compressing Maps"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index 68d0cf576..72d50d69a 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -20,6 +20,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_dl_steamcmd() {
+ remotelocation="SteamCMD"
fn_print_start_nl "${remotelocation}"
fn_script_log_info "${commandaction} ${selfname}: ${remotelocation}"
if [ -n "${branch}" ]; then
@@ -53,7 +54,7 @@ fn_dl_steamcmd() {
rm -f "${steamcmdlog:?}"
fi
counter=0
- while [ "${counter}" == "0" ] || [ "${exitcode}" != "0" ]; do
+ while [ "${counter}" -eq 0 ] || [ "${exitcode}" -ne 0 ]; do
counter=$((counter + 1))
# Select SteamCMD parameters
# If GoldSrc (appid 90) servers. GoldSrc (appid 90) require extra commands.
@@ -129,14 +130,14 @@ fn_dl_steamcmd() {
fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Missing update files"
else
fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
- echo -en "Please provide content log to LinuxGSM developers https://linuxgsm.com/steamcmd-error"
+ fn_print_nl "Please provide content log to LinuxGSM developers https://linuxgsm.com/steamcmd-error"
fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
fi
- elif [ "${exitcode}" != 0 ]; then
+ elif [ "${exitcode}" -ne 0 ]; then
fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Exit code: ${exitcode}"
fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Exit code: ${exitcode}"
else
- fn_print_complete_nl "${commandaction} ${selfname}: ${remotelocation}"
+ fn_print_success_nl "${commandaction} ${selfname}: ${remotelocation}"
fn_script_log_pass "${commandaction} ${selfname}: ${remotelocation}"
fi
@@ -150,16 +151,16 @@ fn_dl_steamcmd() {
# Emptys contents of the LinuxGSM tmpdir.
fn_clear_tmp() {
- echo -en "clearing LinuxGSM tmp directory..."
+ echo -en "clearing tmp directory [ ${italic}${tmpdir}${default} ]"
if [ -d "${tmpdir}" ]; then
rm -rf "${tmpdir:?}/"*
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_error_eol_nl
- fn_script_log_error "clearing LinuxGSM tmp directory"
+ fn_script_log_error "clearing tmp directory ${tmpdir}"
else
fn_print_ok_eol_nl
- fn_script_log_pass "clearing LinuxGSM tmp directory"
+ fn_script_log_pass "clearing tmp directory ${tmpdir}"
fi
fi
}
@@ -259,8 +260,8 @@ fn_dl_extract() {
extractcmd=$(unzip -qo -d "${extractdest}" "${local_filedir}/${local_filename}")
fi
fi
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Extracting ${local_filename}"
if [ -f "${lgsmlog}" ]; then
@@ -277,11 +278,11 @@ fn_dl_extract() {
# Trap to remove file download if canceled before completed.
fn_fetch_trap() {
echo -e ""
- echo -en "downloading ${local_filename}..."
+ echo -en "downloading ${local_filename}"
fn_print_canceled_eol_nl
fn_script_log_info "Downloading ${local_filename}...CANCELED"
rm -f "${local_filedir:?}/${local_filename}"
- echo -en "downloading ${local_filename}..."
+ echo -en "downloading ${local_filename}"
fn_print_removed_eol_nl
fn_script_log_info "Downloading ${local_filename}...REMOVED"
core_exit.sh
@@ -313,12 +314,12 @@ fn_check_file() {
fileurl_name="${remote_fileurl_backup_name}"
fi
counter=$((counter + 1))
- echo -en "checking ${fileurl_name} ${remote_filename}...\c"
+ echo -e "checking ${fileurl_name} ${remote_filename}\c"
curlcmd=$(curl --output /dev/null --silent --head --fail "${fileurl}" 2>&1)
- local exitcode=$?
+ exitcode=$?
# On first try will error. On second try will fail.
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
if [ ${counter} -ge 2 ]; then
fn_print_fail_eol_nl
if [ -f "${lgsmlog}" ]; then
@@ -379,6 +380,7 @@ fn_fetch_file() {
counter=1
remote_fileurls_array=(remote_fileurl)
fi
+
for remote_fileurl_array in "${remote_fileurls_array[@]}"; do
if [ "${remote_fileurl_array}" == "remote_fileurl" ]; then
fileurl="${remote_fileurl}"
@@ -399,15 +401,15 @@ fn_fetch_file() {
local exitcode=""
large_files=("bz2" "gz" "zip" "jar" "xz")
if grep -qE "(^|\s)${local_filename##*.}(\s|$)" <<< "${large_files[@]}"; then
- echo -en "downloading ${local_filename}..."
+ echo -e "downloading file [ ${italic}${local_filename}${default} ]"
fn_sleep_time
- echo -en "\033[1K"
"${curlcmd[@]}" --progress-bar "${fileurl}" 2>&1
- exitcode="$?"
+ exitcode=$?
+ echo -en "downloading file [ ${italic}${local_filename}${default} ]"
else
- echo -en "fetching ${fileurl_name} ${local_filename}...\c"
+ echo -en "fetching ${fileurl_name} [ ${italic}${local_filename}${default} ]\c"
"${curlcmd[@]}" --silent --show-error "${fileurl}" 2>&1
- exitcode="$?"
+ exitcode=$?
fi
# Download will fail if downloads a html file.
@@ -419,7 +421,7 @@ fn_fetch_file() {
fi
# On first try will error. On second try will fail.
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
if [ ${counter} -ge 2 ]; then
fn_print_fail_eol_nl
if [ -f "${lgsmlog}" ]; then
diff --git a/lgsm/modules/core_exit.sh b/lgsm/modules/core_exit.sh
index fd7645462..5f55dfcd1 100644
--- a/lgsm/modules/core_exit.sh
+++ b/lgsm/modules/core_exit.sh
@@ -27,14 +27,14 @@ fi
if [ "${exitbypass}" ]; then
unset exitbypass
-elif [ "${exitcode}" != "0" ]; then
+elif [ "${exitcode}" -ne 0 ]; then
# List LinuxGSM version in logs
fn_script_log_info "LinuxGSM version: ${version}"
- if [ "${exitcode}" == "1" ]; then
+ if [ "${exitcode}" -eq 1 ]; then
fn_script_log_fail "${moduleselfname} exiting with code: ${exitcode}"
- elif [ "${exitcode}" == "2" ]; then
+ elif [ "${exitcode}" -eq 2 ]; then
fn_script_log_error "${moduleselfname} exiting with code: ${exitcode}"
- elif [ "${exitcode}" == "3" ]; then
+ elif [ "${exitcode}" -eq 3 ]; then
fn_script_log_warn "${moduleselfname} exiting with code: ${exitcode}"
else
# if exit code is not set assume error.
@@ -45,7 +45,7 @@ elif [ "${exitcode}" != "0" ]; then
# remove trap.
trap - INT
exit "${exitcode}"
-elif [ "${exitcode}" ] && [ "${exitcode}" == "0" ]; then
+elif [ "${exitcode}" ] && [ "${exitcode}" -eq 0 ]; then
# List LinuxGSM version in logs
fn_script_log_info "LinuxGSM version: ${version}"
fn_script_log_pass "${moduleselfname} exiting with code: ${exitcode}"
diff --git a/lgsm/modules/core_getopt.sh b/lgsm/modules/core_getopt.sh
index 688dcdc9c..9a5704663 100644
--- a/lgsm/modules/core_getopt.sh
+++ b/lgsm/modules/core_getopt.sh
@@ -56,6 +56,7 @@ cmd_dev_detect_deps=("dd;detect-deps" "command_dev_detect_deps.sh" "Detect requi
cmd_dev_detect_glibc=("dg;detect-glibc" "command_dev_detect_glibc.sh" "Detect required glibc.")
cmd_dev_detect_ldd=("dl;detect-ldd" "command_dev_detect_ldd.sh" "Detect required dynamic dependencies.")
cmd_dev_query_raw=("qr;query-raw" "command_dev_query_raw.sh" "The raw output of gamedig and gsquery.")
+cmd_dev_ui=("ui;ui" "command_dev_ui.sh" "Assist with UI development.")
cmd_dev_clear_modules=("cm;clear-modules" "command_dev_clear_modules.sh" "Delete the contents of the modules dir.")
### Set specific opt here.
@@ -147,7 +148,7 @@ currentopt+=("${cmd_install[@]}" "${cmd_auto_install[@]}")
## Developer commands.
currentopt+=("${cmd_dev_debug[@]}")
if [ -f ".dev-debug" ]; then
- currentopt+=("${cmd_dev_parse_game_details[@]}" "${cmd_dev_parse_distro_details[@]}" "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_clear_modules[@]}")
+ currentopt+=("${cmd_dev_parse_game_details[@]}" "${cmd_dev_parse_distro_details[@]}" "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_ui[@]}" "${cmd_dev_clear_modules[@]}")
fi
## Sponsor.
@@ -165,19 +166,19 @@ done
# Shows LinuxGSM usage.
fn_opt_usage() {
- echo -e "Usage: $0 [option]"
- echo -e ""
- echo -e "LinuxGSM - ${gamename} - Version ${version}"
- echo -e "https://linuxgsm.com/${gameservername}"
- echo -e ""
- echo -e "${lightyellow}Commands${default}"
+ fn_print_nl "Usage: $0 [option]"
+ fn_print_nl ""
+ fn_print_nl "LinuxGSM - ${gamename} - Version ${version}"
+ fn_print_nl "https://linuxgsm.com/${gameservername}"
+ fn_print_nl ""
+ fn_print_nl "${bold}${lightyellow}Commands${default}"
# Display available commands.
index="0"
{
for ((index = "0"; index < ${#currentopt[@]}; index += 3)); do
# Hide developer commands.
if [ "${currentopt[index + 2]}" != "DEVCOMMAND" ]; then
- echo -e "${cyan}$(echo -e "${currentopt[index]}" | awk -F ';' '{ print $2 }')\t${default}$(echo -e "${currentopt[index]}" | awk -F ';' '{ print $1 }')\t| ${currentopt[index + 2]}"
+ fn_print_nl "${cyan}$(echo -e "${currentopt[index]}" | awk -F ';' '{ print $2 }')\t${default}$(echo -e "${currentopt[index]}" | awk -F ';' '{ print $1 }')\t| ${currentopt[index + 2]}"
fi
done
} | column -s $'\t' -t
diff --git a/lgsm/modules/core_messages.sh b/lgsm/modules/core_messages.sh
index 80ef293d8..37c2e98b5 100644
--- a/lgsm/modules/core_messages.sh
+++ b/lgsm/modules/core_messages.sh
@@ -34,6 +34,14 @@ fn_ansi_loader() {
# erase to end of line.
creeol+="\033[K"
fi
+ # carriage return & erase to end of line.
+ creeol="\r\033[K"
+
+ bold="\e[1m"
+ dim="\e[2m"
+ italic="\e[3m"
+ underline="\e[4m"
+ reverse="\e[7m"
}
fn_sleep_time() {
@@ -71,216 +79,141 @@ fn_script_log() {
## Feb 28 14:56:58 ut99-server: Monitor: PASS:
fn_script_log_pass() {
- if [ -d "${lgsmlogdir}" ]; then
-
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: PASS: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: PASS: ${1}" >> "${lgsmlog}"
- fi
- fi
+ fn_script_log "PASS: ${1}"
exitcode=0
}
## Feb 28 14:56:58 ut99-server: Monitor: FATAL:
fn_script_log_fail() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: FATAL: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: FATAL: ${1}" >> "${lgsmlog}"
- fi
- fi
+ fn_script_log "FAIL: ${1}"
exitcode=1
}
## Feb 28 14:56:58 ut99-server: Monitor: ERROR:
fn_script_log_error() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: ERROR: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ERROR: ${1}" >> "${lgsmlog}"
- fi
- fi
+ fn_script_log "ERROR: ${1}"
exitcode=2
}
## Feb 28 14:56:58 ut99-server: Monitor: WARN:
fn_script_log_warn() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: WARN: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: WARN: ${1}" >> "${lgsmlog}"
- fi
- fi
+ fn_script_log "WARN: ${1}"
exitcode=3
}
## Feb 28 14:56:58 ut99-server: Monitor: INFO:
fn_script_log_info() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: INFO: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: INFO: ${1}" >> "${lgsmlog}"
- fi
- fi
-}
-
-## Feb 28 14:56:58 ut99-server: Monitor: UPDATE:
-fn_script_log_update() {
- if [ -d "${lgsmlogdir}" ]; then
- if [ -n "${commandname}" ]; then
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: ${commandname}: UPDATE: ${1}" >> "${lgsmlog}"
- else
- echo -e "$(date '+%b %d %H:%M:%S.%3N') ${selfname}: UPDATE: ${1}" >> "${lgsmlog}"
- fi
- fi
+ fn_script_log "INFO: ${1}"
}
# On-Screen - Automated functions
##################################
-# [ .... ]
-fn_print_dots() {
+fn_print() {
+ echo -en "$*${default}"
+}
+
+fn_print_nl() {
+ echo -e "$*${default}"
+}
+
+# Helper function to print messages with a specific format and color
+fn_print_message() {
+ local type="$1"
+ local color="$2"
+ local message="$3"
if [ "${commandaction}" ]; then
- echo -en "${creeol}[ .... ] ${commandaction} ${selfname}: $*"
+ echo -en "${bold}${creeol}[${color} ${type} ${default}]${default} ${commandaction} ${selfname}: ${message}${default}"
else
- echo -en "${creeol}[ .... ] $*"
+ echo -en "${bold}${cree}[${color} ${type} ${default}]${default} ${message}${default}"
fi
- fn_sleep_time_05
+ fn_sleep_time
}
-fn_print_dots_nl() {
+fn_print_message_nl() {
+ local type="$1"
+ local color="$2"
+ local message="$3"
if [ "${commandaction}" ]; then
- echo -e "${creeol}[ .... ] ${commandaction} ${selfname}: $*"
+ echo -e "${bold}${creeol}[${color} ${type} ${default}]${default} ${commandaction} ${selfname}: ${message}${default}"
else
- echo -e "${creeol}[ .... ] $*"
+ echo -e "${bold}${creeol}[${color} ${type} ${default}]${default} ${message}${default}"
fi
+ fn_sleep_time
+}
+
+# [ .... ]
+fn_print_dots() {
+ fn_print_message "...." "${default}" "$*"
+ fn_sleep_time_05
+}
+
+fn_print_dots_nl() {
+ fn_print_message_nl "...." "${default}" "$*"
fn_sleep_time_05
- echo -en "\n"
}
# [ OK ]
fn_print_ok() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${green} OK ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${green} OK ${default}] $*"
- fi
- fn_sleep_time
+ fn_print_message " OK " "${green}" "$*"
}
fn_print_ok_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${green} OK ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${green} OK ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
+ fn_print_message_nl " OK " "${green}" "$*"
}
# [ FAIL ]
fn_print_fail() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} FAIL ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} FAIL ${default}] $*"
- fi
- fn_sleep_time
+ fn_print_message "FAIL" "${red}" "$*"
}
fn_print_fail_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} FAIL ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} FAIL ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
+ fn_print_message_nl "FAIL" "${red}" "$*"
}
# [ ERROR ]
fn_print_error() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} ERROR ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} ERROR ${default}] $*"
- fi
- fn_sleep_time
+ fn_print_message "ERROR" "${red}" "$*"
}
fn_print_error_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${red} ERROR ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${red} ERROR ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
+ fn_print_message_nl "ERROR" "${red}" "$*"
}
# [ WARN ]
fn_print_warn() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightyellow} WARN ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightyellow} WARN ${default}] $*"
- fi
- fn_sleep_time
+ fn_print_message "WARN" "${lightyellow}" "$*"
}
fn_print_warn_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightyellow} WARN ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightyellow} WARN ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
+ fn_print_message_nl "WARN" "${lightyellow}" "$*"
}
# [ INFO ]
fn_print_info() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${cyan} INFO ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${cyan} INFO ${default}] $*"
- fi
- fn_sleep_time
+ fn_print_message "INFO" "${cyan}" "$*"
}
fn_print_info_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${cyan} INFO ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${cyan} INFO ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
+ fn_print_message_nl "INFO" "${cyan}" "$*"
+}
+
+# [ SKIP ]
+fn_print_skip() {
+ fn_print_message "SKIP" "${cyan}" "$*"
+}
+
+fn_print_skip_nl() {
+ fn_print_message_nl "SKIP" "${cyan}" "$*"
}
# [ START ]
fn_print_start() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightgreen} START ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightgreen} START ${default}] $*"
- fi
- fn_sleep_time
+ fn_print_message "START" "${lightgreen}" "$*"
}
fn_print_start_nl() {
- if [ "${commandaction}" ]; then
- echo -en "${creeol}[${lightgreen} START ${default}] ${commandaction} ${selfname}: $*"
- else
- echo -en "${creeol}[${lightgreen} START ${default}] $*"
- fi
- fn_sleep_time
- echo -en "\n"
+ fn_print_message_nl "START" "${lightgreen}" "$*"
}
# On-Screen - Interactive messages
@@ -304,63 +237,75 @@ fn_print_header() {
fn_messages_separator
}
-# Complete!
-fn_print_complete() {
- echo -en "${green}Complete!${default} $*"
+# Success!
+fn_print_success() {
+ echo -en "${green}Success!${default} $*${default}"
fn_sleep_time
}
-fn_print_complete_nl() {
- echo -e "${green}Complete!${default} $*"
+fn_print_success_nl() {
+ echo -e "${green}Success!${default} $*${default}"
fn_sleep_time
}
# Failure!
fn_print_failure() {
- echo -en "${red}Failure!${default} $*"
+ echo -en "${red}Failure!${default} $*${default}"
fn_sleep_time
}
fn_print_failure_nl() {
- echo -e "${red}Failure!${default} $*"
+ echo -e "${red}Failure!${default} $*${default}"
fn_sleep_time
}
# Error!
fn_print_error2() {
- echo -en "${red}Error!${default} $*"
+ echo -en "${red}Error!${default} $*${default}"
fn_sleep_time
}
fn_print_error2_nl() {
- echo -e "${red}Error!${default} $*"
+ echo -e "${red}Error!${default} $*${default}"
fn_sleep_time
}
# Warning!
fn_print_warning() {
- echo -en "${lightyellow}Warning!${default} $*"
+ echo -en "${lightyellow}Warning!${default} $*${default}"
fn_sleep_time
}
fn_print_warning_nl() {
- echo -e "${lightyellow}Warning!${default} $*"
+ echo -e "${lightyellow}Warning!${default} $*${default}"
fn_sleep_time
}
# Information!
fn_print_information() {
- echo -en "${cyan}Information!${default} $*"
+ echo -en "${cyan}Information!${default} $*${default}"
fn_sleep_time
}
fn_print_information_nl() {
- echo -e "${cyan}Information!${default} $*"
+ echo -e "${cyan}Information!${default} $*${default}"
+ fn_sleep_time
+}
+
+# Skip!
+fn_print_skip2() {
+ echo -en "${cyan}Skip!${default} $*${default}"
+ fn_sleep_time
+}
+
+fn_print_skip2_nl() {
+ echo -e "${cyan}Skip!${default} $*${default}"
fn_sleep_time
}
# Y/N Prompt
fn_prompt_yn() {
+ echo -e ""
local prompt="$1"
local initial="$2"
@@ -400,155 +345,166 @@ fn_prompt_message() {
# YES
fn_print_yes_eol() {
- echo -en "${cyan}YES${default}"
+ echo -en " ... ${cyan}YES${default}"
fn_sleep_time
}
fn_print_yes_eol_nl() {
- echo -e "${cyan}YES${default}"
+ echo -e " ... ${cyan}YES${default}"
fn_sleep_time
}
# NO
fn_print_no_eol() {
- echo -en "${red}NO${default}"
+ echo -en " ... ${red}NO${default}"
fn_sleep_time
}
fn_print_no_eol_nl() {
- echo -e "${red}NO${default}"
+ echo -e " ... ${red}NO${default}"
fn_sleep_time
}
# OK
fn_print_ok_eol() {
- echo -en "${green}OK${default}"
+ echo -en " ... ${green}OK${default}"
fn_sleep_time
}
fn_print_ok_eol_nl() {
- echo -e "${green}OK${default}"
+ echo -e " ... ${green}OK${default}"
fn_sleep_time
}
# FAIL
fn_print_fail_eol() {
- echo -en "${red}FAIL${default}"
+ echo -en " ... ${red}FAIL${default}"
fn_sleep_time
}
fn_print_fail_eol_nl() {
- echo -e "${red}FAIL${default}"
+ echo -e " ... ${red}FAIL${default}"
fn_sleep_time
}
# ERROR
fn_print_error_eol() {
- echo -en "${red}ERROR${default}"
+ echo -en " ... ${red}ERROR${default}"
fn_sleep_time
}
fn_print_error_eol_nl() {
- echo -e "${red}ERROR${default}"
+ echo -e " ... ${red}ERROR${default}"
fn_sleep_time
}
# WAIT
fn_print_wait_eol() {
- echo -en "${cyan}WAIT${default}"
+ echo -en " ... ${cyan}WAIT${default}"
fn_sleep_time
}
fn_print_wait_eol_nl() {
- echo -e "${cyan}WAIT${default}"
+ echo -e " ... ${cyan}WAIT${default}"
fn_sleep_time
}
# WARN
fn_print_warn_eol() {
- echo -en "${lightyellow}WARN${default}"
+ echo -en " ... ${lightyellow}WARN${default}"
fn_sleep_time
}
fn_print_warn_eol_nl() {
- echo -e "${lightyellow}WARN${default}"
+ echo -e " ... ${lightyellow}WARN${default}"
fn_sleep_time
}
# INFO
fn_print_info_eol() {
- echo -en "${cyan}INFO${default}"
+ echo -en " ... ${cyan}INFO${default}"
fn_sleep_time
}
fn_print_info_eol_nl() {
- echo -e "${cyan}INFO${default}"
+ echo -e " ... ${cyan}INFO${default}"
fn_sleep_time
}
# QUERYING
fn_print_querying_eol() {
- echo -en "${cyan}QUERYING${default}"
+ echo -en " ... ${cyan}QUERYING${default}"
fn_sleep_time_1
}
fn_print_querying_eol_nl() {
- echo -e "${cyan}QUERYING${default}"
+ echo -e " ... ${cyan}QUERYING${default}"
fn_sleep_time_1
}
# CHECKING
fn_print_checking_eol() {
- echo -en "${cyan}CHECKING${default}"
+ echo -en " ... ${cyan}CHECKING${default}"
fn_sleep_time_1
}
fn_print_checking_eol_nl() {
- echo -e "${cyan}CHECKING${default}"
+ echo -e " ... ${cyan}CHECKING${default}"
fn_sleep_time_1
}
# DELAY
fn_print_delay_eol() {
- echo -en "${green}DELAY${default}"
+ echo -en " ... ${green}DELAY${default}"
fn_sleep_time_1
}
fn_print_delay_eol_nl() {
- echo -e "${green}DELAY${default}"
+ echo -e " ... ${green}DELAY${default}"
fn_sleep_time_1
}
# CANCELED
fn_print_canceled_eol() {
- echo -en "${lightyellow}CANCELED${default}"
+ echo -en " ... ${lightyellow}CANCELED${default}"
fn_sleep_time_1
}
fn_print_canceled_eol_nl() {
- echo -e "${lightyellow}CANCELED${default}"
+ echo -e " ... ${lightyellow}CANCELED${default}"
fn_sleep_time_1
}
# REMOVED
fn_print_removed_eol() {
- echo -en "${red}REMOVED${default}"
+ echo -en " ... ${red}REMOVED${default}"
fn_sleep_time_1
}
fn_print_removed_eol_nl() {
- echo -e "${red}REMOVED${default}"
+ echo -e " ... ${red}REMOVED${default}"
fn_sleep_time_1
}
# UPDATE
fn_print_update_eol() {
- echo -en "${cyan}UPDATE${default}"
+ echo -en " ... ${lightblue}UPDATE${default}"
fn_sleep_time
}
fn_print_update_eol_nl() {
- echo -e "${cyan}UPDATE${default}"
+ echo -e " ... ${lightblue}UPDATE${default}"
+ fn_sleep_time
+}
+
+# SKIP
+fn_print_skip_eol() {
+ echo -en " ... ${cyan}SKIP${default}"
+ fn_sleep_time
+}
+
+fn_print_skip_eol_nl() {
+ echo -e " ... ${cyan}SKIP${default}"
fn_sleep_time
}
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index e4fa35b32..2371a550c 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -42,6 +42,11 @@ core_legacy.sh() {
core_exit.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
+ echo "fn_fetch_module failed, using fn_bootstrap_fetch_module instead."
+ fn_bootstrap_fetch_module
+ fi
}
core_getopt.sh() {
@@ -324,6 +329,11 @@ command_dev_detect_ldd.sh() {
fn_fetch_module
}
+command_dev_ui.sh() {
+ modulefile="${FUNCNAME[0]}"
+ fn_fetch_module
+}
+
command_dev_query_raw.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
diff --git a/lgsm/modules/core_steamcmd.sh b/lgsm/modules/core_steamcmd.sh
index e08c921dd..5ee14a742 100644
--- a/lgsm/modules/core_steamcmd.sh
+++ b/lgsm/modules/core_steamcmd.sh
@@ -23,7 +23,7 @@ fn_check_steamcmd_user() {
# Checks if steamuser is setup.
if [ "${steamuser}" == "username" ]; then
fn_print_fail_nl "Steam login not set. Update steamuser in ${configdirserver}"
- echo -e " * Change steamuser=\"username\" to a valid steam login."
+ fn_print_nl " * Change steamuser=\"username\" to a valid steam login."
if [ -d "${lgsmlogdir}" ]; then
fn_script_log_fail "Steam login not set. Update steamuser in ${configdirserver}"
fi
@@ -44,15 +44,16 @@ fn_check_steamcmd() {
# Only install if steamcmd package is missing or steamcmd dir is missing.
if [ ! -f "${steamcmddir}/steamcmd.sh" ] && [ -z "$(command -v steamcmd 2> /dev/null)" ]; then
if [ "${commandname}" == "INSTALL" ]; then
+ fn_print_nl "install SteamCMD"
fn_install_steamcmd
else
- fn_print_warn_nl "SteamCMD is missing"
- fn_script_log_warn "SteamCMD is missing"
+ fn_print_warn_nl "SteamCMD is not installed"
+ fn_script_log_warn "SteamCMD is not installed"
fn_install_steamcmd
fi
elif [ "${commandname}" == "INSTALL" ]; then
- fn_print_information "SteamCMD is already installed..."
- fn_print_ok_eol_nl
+ fn_print "install SteamCMD"
+ fn_print_skip_eol_nl
fi
}
@@ -128,7 +129,7 @@ fn_check_steamcmd_clear() {
if [ "$(command -v steamcmd 2> /dev/null)" ] && [ -d "${rootdir}/steamcmd" ]; then
rm -rf "${steamcmddir:?}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "Removing ${rootdir}/steamcmd"
else
fn_script_log_pass "Removing ${rootdir}/steamcmd"
@@ -213,18 +214,18 @@ fn_update_steamcmd_compare() {
# Create update lockfile.
date '+%s' > "${lockdir:?}/update.lock"
fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "Update available"
- echo -e "* Local build: ${red}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
+ fn_print "\n"
+ fn_print_nl "${bold}${underline}Update${default} available"
+ fn_print_nl "* Local build: ${red}${localbuild}${default}"
+ fn_print_nl "* Remote build: ${green}${remotebuildversion}${default}"
if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
+ fn_print_nl "* Branch: ${branch}"
fi
if [ -n "${betapassword}" ]; then
- echo -e "* Branch password: ${betapassword}"
+ fn_print_nl "* Branch password: ${betapassword}"
fi
- echo -e "https://steamdb.info/app/${appid}/"
- echo -en "\n"
+ fn_print_nl "${italic}https://steamdb.info/app/${appid}/history"
+ fn_print "\n"
fn_script_log_info "Update available"
fn_script_log_info "Local build: ${localbuild}"
fn_script_log_info "Remote build: ${remotebuildversion}"
@@ -263,18 +264,18 @@ fn_update_steamcmd_compare() {
alert.sh
else
fn_print_ok_nl "Checking for update: ${remotelocation}"
- echo -en "\n"
- echo -e "No update available"
- echo -e "* Local build: ${green}${localbuild}${default}"
- echo -e "* Remote build: ${green}${remotebuildversion}${default}"
+ fn_print "\n"
+ fn_print_nl "${bold}${underline}No update${default} available"
+ fn_print_nl "* Local build: ${green}${localbuild}${default}"
+ fn_print_nl "* Remote build: ${green}${remotebuildversion}${default}"
if [ -n "${branch}" ]; then
- echo -e "* Branch: ${branch}"
+ fn_print_nl "* Branch: ${branch}"
fi
if [ -n "${betapassword}" ]; then
- echo -e "* Branch password: ${betapassword}"
+ fn_print_nl "* Branch password: ${betapassword}"
fi
- echo -e "https://steamdb.info/app/${appid}/"
- echo -en "\n"
+ fn_print_nl "https://steamdb.info/app/${appid}/history"
+ fn_print "\n"
fn_script_log_info "No update available"
fn_script_log_info "Local build: ${localbuild}"
fn_script_log_info "Remote build: ${remotebuildversion}"
@@ -308,9 +309,9 @@ fn_check_steamcmd_appmanifest() {
if [ "${appmanifestfilewc}" -ge "2" ]; then
fn_print_fail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
fn_script_log_fail "Unable to remove x${appmanifestfilewc} appmanifest_${appid}.acf files"
- echo -e "* Check user permissions"
+ fn_print_nl "* Check user permissions"
for appfile in ${appmanifestfile}; do
- echo -e " ${appfile}"
+ fn_print_nl " ${appfile}"
done
core_exit.sh
else
diff --git a/lgsm/modules/fix.sh b/lgsm/modules/fix.sh
index f9628a335..f31030779 100644
--- a/lgsm/modules/fix.sh
+++ b/lgsm/modules/fix.sh
@@ -22,7 +22,8 @@ fn_fix_msg_start_nl() {
}
fn_fix_msg_end() {
- if [ $? != 0 ]; then
+ exirtcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_error_nl "Applying ${fixname} fix: ${gamename}"
fn_script_log_error "Applying ${fixname} fix: ${gamename}"
else
@@ -79,7 +80,7 @@ fi
if [ "${commandname}" == "INSTALL" ]; then
if grep -qEe "(^|\s)${shortname}(\s|$)" <<< "${apply_post_install_fix[@]}"; then
echo -e ""
- echo -e "${lightyellow}Applying Post-Install Fixes${default}"
+ echo -e "${bold}${lightyellow}Applying Post-Install Fixes${default}"
fn_messages_separator
postinstall=1
fn_apply_fix "post install" "${shortname}"
diff --git a/lgsm/modules/fix_bt.sh b/lgsm/modules/fix_bt.sh
index 51fc3d505..107c84458 100755
--- a/lgsm/modules/fix_bt.sh
+++ b/lgsm/modules/fix_bt.sh
@@ -5,7 +5,7 @@
# Website: https://linuxgsm.com
# Description: Resolves issues with Barotrauma.
-module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Fixes: Missing user data directory error.
if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Daedalic Entertainment GmbH/Barotrauma" ]; then
diff --git a/lgsm/modules/fix_rust.sh b/lgsm/modules/fix_rust.sh
index af995a2fa..80c790a59 100644
--- a/lgsm/modules/fix_rust.sh
+++ b/lgsm/modules/fix_rust.sh
@@ -11,7 +11,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/RustDedicated_Data/Plugins/x86_64"
# Part of random seed feature.
-# If seed is not defined by user generate a seed file.
+# If the seed is not defined by the user, generate a seed file.
if [ -z "${seed}" ] || [ "${seed}" == "0" ]; then
if [ ! -f "${datadir}/${selfname}-seed.txt" ]; then
shuf -i 1-2147483647 -n 1 > "${datadir}/${selfname}-seed.txt"
diff --git a/lgsm/modules/info_distro.sh b/lgsm/modules/info_distro.sh
index 0813554dc..67a9fd5df 100644
--- a/lgsm/modules/info_distro.sh
+++ b/lgsm/modules/info_distro.sh
@@ -188,13 +188,10 @@ if [ "$(command -v numfmt 2> /dev/null)" ]; then
else
# Older distros will need to use free.
# Older versions of free do not support -h option.
- if [ "$(
- free -h > /dev/null 2>&1
- echo $?
- )" -ne "0" ]; then
- humanreadable="-m"
- else
+ if free -h > /dev/null 2>&1; then
humanreadable="-h"
+ else
+ humanreadable="-m"
fi
physmemtotalmb="$(free -m | awk '/Mem:/ {print $2}')" # integer
physmemtotalgb="$(free -m | awk '/Mem:/ {print $2}')" # integer
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index ff4b5d870..91d78e670 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -132,7 +132,7 @@ fn_info_messages_server_resource() {
echo -e "${bold}${lightyellow}Server Resource${default}"
fn_messages_separator
{
- echo -e "${lightyellow}CPU\t${default}"
+ echo -e "${bold}${lightyellow}CPU\t${default}"
echo -e "${lightblue}Model:\t${default}${cpumodel}"
echo -e "${lightblue}Cores:\t${default}${cpucores}"
echo -e "${lightblue}Frequency:\t${default}${cpufreqency}MHz"
@@ -140,14 +140,14 @@ fn_info_messages_server_resource() {
} | column -s $'\t' -t
echo -e ""
{
- echo -e "${lightyellow}Memory\t${default}"
+ echo -e "${bold}${lightyellow}Memory\t${default}"
echo -e "${lightblue}Mem:\t${lightblue}total\tused\tfree\tcached\tavailable${default}"
echo -e "${lightblue}Physical:\t${default}${physmemtotal}\t${physmemused}\t${physmemfree}\t${physmemcached}\t${physmemavailable}${default}"
echo -e "${lightblue}Swap:\t${default}${swaptotal}\t${swapused}\t${swapfree}${default}"
} | column -s $'\t' -t
echo -e ""
{
- echo -e "${lightyellow}Storage${default}"
+ echo -e "${bold}${lightyellow}Storage${default}"
echo -e "${lightblue}Filesystem:\t${default}${filesystem}"
echo -e "${lightblue}Total:\t${default}${totalspace}"
echo -e "${lightblue}Used:\t${default}${usedspace}"
@@ -155,7 +155,7 @@ fn_info_messages_server_resource() {
} | column -s $'\t' -t
echo -e ""
{
- echo -e "${lightyellow}Network${default}"
+ echo -e "${bold}${lightyellow}Network${default}"
if [ -n "${netint}" ]; then
echo -e "${lightblue}Interface:\t${default}${netint}"
fi
@@ -203,7 +203,7 @@ fn_info_messages_gameserver_resource() {
} | column -s $'\t' -t
echo -e ""
{
- echo -e "${lightyellow}Storage${default}"
+ echo -e "${bold}${lightyellow}Storage${default}"
echo -e "${lightblue}Total:\t${default}${rootdirdu}"
echo -e "${lightblue}Serverfiles:\t${default}${serverfilesdu}"
if [ -d "${backupdir}" ]; then
@@ -292,7 +292,7 @@ fn_info_messages_gameserver() {
echo -e "${lightblue}Server password:\t${default}${serverpassword}"
fi
- # Query enabled (Starbound)
+ # Query enabled (Starbound, Minecraft)
if [ -n "${queryenabled}" ]; then
echo -e "${lightblue}Query enabled:\t${default}${queryenabled}"
fi
@@ -553,23 +553,39 @@ fn_info_messages_script() {
fi
# Discord alert
- echo -e "${lightblue}Discord alert:\t${default}${discordalert}"
+ if [ "${discordalert}" == "on" ]; then
+ echo -e "${lightblue}Discord alert:\t${default}${discordalert}"
+ fi
# Email alert
- echo -e "${lightblue}Email alert:\t${default}${emailalert}"
+ if [ "${emailalert}" == "on" ]; then
+ echo -e "${lightblue}Email alert:\t${default}${emailalert}"
+ fi
# Gotify alert
- echo -e "${lightblue}Gotify alert:\t${default}${gotifyalert}"
+ if [ "${gotifyalert}" == "on" ]; then
+ echo -e "${lightblue}Gotify alert:\t${default}${gotifyalert}"
+ fi
# IFTTT alert
echo -e "${lightblue}IFTTT alert:\t${default}${iftttalert}"
# Pushbullet alert
- echo -e "${lightblue}Pushbullet alert:\t${default}${pushbulletalert}"
+ if [ "${pushbulletalert}" == "on" ]; then
+ echo -e "${lightblue}Pushbullet alert:\t${default}${pushbulletalert}"
+ fi
# Pushover alert
- echo -e "${lightblue}Pushover alert:\t${default}${pushoveralert}"
+ if [ "${pushoveralert}" == "on" ]; then
+ echo -e "${lightblue}Pushover alert:\t${default}${pushoveralert}"
+ fi
# Rocketchat alert
- echo -e "${lightblue}Rocketchat alert:\t${default}${rocketchatalert}"
+ if [ "${rocketchatalert}" == "on" ]; then
+ echo -e "${lightblue}Rocketchat alert:\t${default}${rocketchatalert}"
+ fi
# Slack alert
- echo -e "${lightblue}Slack alert:\t${default}${slackalert}"
+ if [ "${slackalert}" == "on" ]; then
+ echo -e "${lightblue}Slack alert:\t${default}${slackalert}"
+ fi
# Telegram alert
- echo -e "${lightblue}Telegram alert:\t${default}${telegramalert}"
+ if [ "${telegramalert}" == "on" ]; then
+ echo -e "${lightblue}Telegram alert:\t${default}${telegramalert}"
+ fi
# Update on start
if [ -n "${updateonstart}" ]; then
diff --git a/lgsm/modules/install_complete.sh b/lgsm/modules/install_complete.sh
index 0ee01954a..c84e35fe0 100644
--- a/lgsm/modules/install_complete.sh
+++ b/lgsm/modules/install_complete.sh
@@ -8,25 +8,24 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo -e ""
-fn_messages_separator
-if [ "${exitcode}" == "1" ]; then
+if [ "${exitcode}" -eq 1 ]; then
echo -e "${bold}${red}Install Failed!${default}"
fn_script_log_fail "Install Failed!"
-elif [ "${exitcode}" == "2" ]; then
+elif [ "${exitcode}" -eq 2 ]; then
echo -e "${bold}${red}Install Completed with Errors!${default}}"
fn_script_log_error "Install Completed with Errors!"
-elif [ "${exitcode}" == "3" ]; then
+elif [ "${exitcode}" -eq 3 ]; then
echo -e "${bold}${lightyellow}Install Completed with Warnings!${default}}"
fn_script_log_warn "Install Completed with Warnings!"
-elif [ -z "${exitcode}" ] || [ "${exitcode}" == "0" ]; then
+elif [ -z "${exitcode}" ] || [ "${exitcode}" -eq 0 ]; then
echo -e "${bold}${green}Install Complete!${default}"
fn_script_log_pass "Install Complete!"
fi
+fn_messages_separator
-fn_script_log_info "Install Complete!"
echo -e ""
-echo -e "To start server type:"
-echo -e "./${selfname} start"
+echo -e "To start the ${gamename} server type:"
+echo -e "${italic}./${selfname} start${default}"
echo -e ""
core_exit.sh
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index f4005c6f8..ae395c205 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -16,43 +16,76 @@ fn_check_cfgdir() {
fi
}
-# Downloads default configs from Game-Server-Configs repo to lgsm/config-default.
-fn_fetch_default_config() {
+# Copys default configs from Game-Server-Configs repo to server config location.
+fn_default_config_remote() {
echo -e ""
echo -e "${bold}${lightyellow}Downloading ${gamename} Configs${default}"
fn_messages_separator
- echo -e "Downloading default configs from:"
- echo -e ""
- echo -e "${italic}https://github.com/GameServerManagers/Game-Server-Configs${default}"
+ echo -e "Downloading default configs from: ${italic}https://github.com/GameServerManagers/Game-Server-Configs${default}"
echo -e ""
fn_sleep_time_1
mkdir -p "${lgsmdir}/config-default/config-game"
githuburl="https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/main"
for config in "${array_configs[@]}"; do
+ # Downloads default configs from Game-Server-Configs repo to lgsm/config-default.
fn_fetch_file "${githuburl}/${shortname}/${config}" "${remote_fileurl_backup}" "GitHub" "Bitbucket" "${lgsmdir}/config-default/config-game" "${config}" "nochmodx" "norun" "forcedl" "nohash"
- done
-}
-# Copys default configs from Game-Server-Configs repo to server config location.
-fn_default_config_remote() {
- for config in "${array_configs[@]}"; do
- # every config is copied
- echo -e "copying ${config} config file."
- fn_script_log_info "Copying ${servercfg} config file."
+ # Every config is copied.
if [ "${config}" == "${servercfgdefault}" ]; then
mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}"
+ echo -en "copying config file [ ${italic}${servercfgfullpath}${default} ]"
+ changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgfullpath}")
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
+ fn_print_fail_eol_nl
+ fn_script_log_fail "copying config file ${servercfgfullpath}"
+ elif [ "${changes}" != "" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "copying config file ${servercfgfullpath}"
+ else
+ fn_print_skip_eol_nl
+ fi
elif [ "${shortname}" == "arma3" ] && [ "${config}" == "${networkcfgdefault}" ]; then
mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}"
+ echo -en "copying config file [ ${italic}${networkcfgfullpath}${default} ]"
+ changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${config}" "${networkcfgfullpath}")
+ if [ "${exitcode}" -ne 0 ]; then
+ fn_print_fail_eol_nl
+ fn_script_log_fail "copying config file ${networkcfgdefault}"
+ elif [ "${changes}" != "" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "copying config file ${networkcfgdefault}"
+ else
+ fn_print_skip_eol_nl
+ fi
elif [ "${shortname}" == "dst" ] && [ "${config}" == "${clustercfgdefault}" ]; then
- cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}"
+ echo -en "copying config file [ ${italic}${clustercfgfullpath}${default} ]"
+ changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${clustercfgdefault}" "${clustercfgfullpath}")
+ if [ "${exitcode}" -ne 0 ]; then
+ fn_print_fail_eol_nl
+ fn_script_log_fail "copying config file ${clustercfgfullpath}"
+ elif [ "${changes}" != "" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "copying config file ${clustercfgfullpath}"
+ else
+ fn_print_skip_eol_nl
+ fi
else
- mkdir -p "${servercfgdir}"
- cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}"
+ echo -en "copying config file [ ${italic}${servercfgdir}/${config}${default} ]"
+ changes+=$(cp -nv "${lgsmdir}/config-default/config-game/${config}" "${servercfgdir}/${config}")
+ if [ "${exitcode}" -ne 0 ]; then
+ fn_print_fail_eol_nl
+ fn_script_log_fail "copying config file ${servercfgdir}/${config}"
+ elif [ "${changes}" != "" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "copying config file ${servercfgdir}/${config}"
+ else
+ fn_print_skip_eol_nl
+ fi
fi
+
+ unset changes
done
- fn_sleep_time
}
# Copys local default config to server config location.
@@ -71,7 +104,7 @@ fn_default_config_local() {
echo -en "copying config file [ ${italic}${servercfgdefault}${default} ]: "
cp --update=none "${servercfgdir}/${servercfgdefault}" "${servercfgfullpath}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol
fn_script_log_fail "copying config file [ ${servercfgdefault} ]: "
else
@@ -88,29 +121,47 @@ fn_set_config_vars() {
randomstring=$(tr -dc 'A-Za-z0-9_' < /dev/urandom 2> /dev/null | head -c 8 | xargs)
servername="LinuxGSM"
rconpass="admin${randomstring}"
- echo -e "changing hostname."
- fn_script_log_info "Changing hostname."
+ echo -en "setting hostname\c"
+ fn_script_log_info "setting hostname"
fn_sleep_time
# prevents var from being overwritten with the servername.
if grep -q "SERVERNAME=SERVERNAME" "${lgsmdir}/config-default/config-game/${config}" 2> /dev/null; then
- sed -i "s/SERVERNAME=SERVERNAME/SERVERNAME=${servername}/g" "${servercfgfullpath}"
+ changes+=$(sed -i "s/SERVERNAME=SERVERNAME/SERVERNAME=${servername}/g w /dev/stdout" "${servercfgfullpath}")
elif grep -q "SERVERNAME=\"SERVERNAME\"" "${lgsmdir}/config-default/config-game/${config}" 2> /dev/null; then
- sed -i "s/SERVERNAME=\"SERVERNAME\"/SERVERNAME=\"${servername}\"/g" "${servercfgfullpath}"
+ changes+=$(sed -i "s/SERVERNAME=\"SERVERNAME\"/SERVERNAME=\"${servername}\"/g w /dev/stdout" "${servercfgfullpath}")
else
- sed -i "s/SERVERNAME/${servername}/g" "${servercfgfullpath}"
+ changes+=$(sed -i "s/SERVERNAME/${servername}/g w /dev/stdout" "${servercfgfullpath}")
fi
- echo -e "changing rcon/admin password."
- fn_script_log_info "Changing rcon/admin password."
- if [ "${shortname}" == "squad" ]; then
- sed -i "s/ADMINPASSWORD/${rconpass}/g" "${servercfgdir}/Rcon.cfg"
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
+ fn_print_fail_eol
+ fn_script_log_fail "setting hostname"
+ elif [ "${changes}" != "" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "setting hostname"
else
- sed -i "s/ADMINPASSWORD/${rconpass}/g" "${servercfgfullpath}"
+ fn_print_skip_eol_nl
fi
+
+ echo -en "generating admin/rcon password\c"
+ fn_script_log_info "generating admin/rcon password"
fn_sleep_time
- else
- fn_script_log_warn "Config file not found, cannot alter it."
- echo -e "Config file not found, cannot alter it."
- fn_sleep_time
+ if [ "${shortname}" == "squad" ]; then
+ changes+=$(sed -i "s/ADMINPASSWORD/${adminpass}/g w /dev/stdout" "${servercfgdir}/Rcon.cfg")
+ else
+ changes+=$(sed -i "s/ADMINPASSWORD/${adminpass}/g w /dev/stdout" "${servercfgfullpath}")
+ fi
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
+ fn_print_fail_eol
+ fn_script_log_fail "generating admin/rcon password"
+ elif [ "${changes}" != "" ]; then
+ fn_print_ok_eol_nl
+ fn_script_log_pass "generating admin/rcon password"
+ else
+ fn_print_skip_eol_nl
+ fi
+ unset changes
fi
}
@@ -164,22 +215,22 @@ fn_set_dst_config_vars() {
echo -e ""
}
-# Lists local config file locations
+# Lists local config locations
fn_list_config_locations() {
echo -e ""
echo -e "${bold}${lightyellow}Config Locations${default}"
fn_messages_separator
if [ -n "${servercfgfullpath}" ]; then
if [ -f "${servercfgfullpath}" ]; then
- echo -e "Game Server Config File: ${servercfgfullpath}"
+ echo -e "${gamename} config file: ${italic}${servercfgfullpath}${default}"
elif [ -d "${servercfgfullpath}" ]; then
- echo -e "Game Server Config Dir: ${servercfgfullpath}"
+ echo -e "${gamename} config directory: ${italic}${servercfgfullpath}"
else
- echo -e "Config file: ${red}${servercfgfullpath}${default} (${red}FILE MISSING${default})"
+ echo -e "${gamename} config: ${italic}${red}${servercfgfullpath}${default} (${red}CONFIG IS MISSING${default})"
fi
fi
- echo -e "LinuxGSM Config: ${lgsmdir}/config-lgsm/${gameservername}"
- echo -e "Documentation: https://docs.linuxgsm.com/configuration/game-server-config"
+ echo -e "LinuxGSM config: ${italic}${lgsmdir}/config-lgsm/${gameservername}${default}"
+ echo -e "Config documentation: ${italic}https://docs.linuxgsm.com/configuration${default}"
}
if [ "${shortname}" == "sdtd" ]; then
@@ -187,66 +238,51 @@ if [ "${shortname}" == "sdtd" ]; then
fn_list_config_locations
elif [ "${shortname}" == "ac" ]; then
array_configs+=(server_cfg.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ahl" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ahl2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ark" ]; then
- fn_check_cfgdir
array_configs+=(GameUserSettings.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "arma3" ]; then
- fn_check_cfgdir
array_configs+=(server.cfg network.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "armar" ]; then
- fn_check_cfgdir
array_configs+=(server.json)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ats" ]; then
- fn_check_cfgdir
array_configs+=(server_config.sii)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bo" ]; then
array_configs+=(config.txt)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bd" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bt" ]; then
- fn_check_cfgdir
array_configs+=(serversettings.xml)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -259,91 +295,76 @@ elif [ "${shortname}" == "btl" ]; then
fn_list_config_locations
elif [ "${shortname}" == "bf1942" ]; then
array_configs+=(serversettings.con)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bfv" ]; then
array_configs+=(serversettings.con)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bs" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bb" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bb2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bmdm" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ck" ]; then
array_configs+=(ServerConfig.json)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "cod" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "coduo" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "cod2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "cod4" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "codwaw" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "cc" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "col" ]; then
array_configs+=(colserver.json)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "cs" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -355,86 +376,70 @@ elif [ "${shortname}" == "cs2" ]; then
fn_list_config_locations
elif [ "${shortname}" == "cscz" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "csgo" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "css" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ct" ]; then
array_configs+=(ServerSetting.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dayz" ]; then
- fn_check_cfgdir
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dod" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dodr" ]; then
array_configs+=(Game.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
elif [ "${shortname}" == "dods" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "doi" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dmc" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dst" ]; then
- fn_check_cfgdir
array_configs+=(cluster.ini server.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_dst_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dab" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "dys" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "eco" ]; then
array_configs+=(Network.eco)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -443,44 +448,36 @@ elif [ "${shortname}" == "em" ]; then
fn_list_config_locations
elif [ "${shortname}" == "etl" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ets2" ]; then
- fn_check_cfgdir
array_configs+=(server_config.sii)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "fctr" ]; then
array_configs+=(server-settings.json)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "fof" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "gmod" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "hldm" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "hldms" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -492,13 +489,11 @@ elif [ "${shortname}" == "ohd" ]; then
fn_list_config_locations
elif [ "${shortname}" == "opfor" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "hl2dm" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -507,104 +502,84 @@ elif [ "${shortname}" == "hz" ]; then
:
elif [ "${shortname}" == "ins" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ios" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "jc2" ]; then
array_configs+=(config.lua)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "jc3" ]; then
array_configs+=(config.json)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "kf" ]; then
array_configs+=(Default.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "l4d" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "l4d2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ]; then
array_configs+=(server.properties)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "mcb" ]; then
array_configs+=(server.properties)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "mohaa" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "mh" ]; then
- fn_check_cfgdir
array_configs+=(Game.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ns" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "nmrih" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "nd" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "mta" ]; then
- fn_check_cfgdir
array_configs+=(acl.xml mtaserver.conf vehiclecolors.conf)
- fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
elif [ "${shortname}" == "pvr" ]; then
- fn_check_cfgdir
array_configs+=(Game.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
elif [ "${shortname}" == "pvkii" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -615,22 +590,17 @@ elif [ "${shortname}" == "pw" ]; then
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "pz" ]; then
- fn_check_cfgdir
array_configs+=(server.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "nec" ]; then
- fn_check_cfgdir
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "pc" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -639,7 +609,6 @@ elif [ "${shortname}" == "pc2" ]; then
fn_list_config_locations
elif [ "${shortname}" == "q2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -657,48 +626,39 @@ elif [ "${shortname}" == "q4" ]; then
fn_list_config_locations
elif [ "${shortname}" == "ql" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "jk2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
elif [ "${shortname}" == "qw" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ricochet" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "rtcw" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "rust" ]; then
- fn_check_cfgdir
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
elif [ "${shortname}" == "scpsl" ] || [ "${shortname}" == "scpslsm" ]; then
array_configs+=(config_gameplay.txt config_localadmin.txt)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "sf" ]; then
array_configs+=(GameUserSettings.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -707,109 +667,90 @@ elif [ "${shortname}" == "sm" ]; then
fn_list_config_locations
elif [ "${shortname}" == "sol" ]; then
array_configs+=(soldat.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "sof2" ]; then
array_configs+=(server.cfg mapcycle.txt)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "sfc" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "squad" ]; then
array_configs+=(Admins.cfg Bans.cfg License.cfg Server.cfg Rcon.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "sb" ]; then
array_configs+=(starbound_server.config)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "stn" ]; then
array_configs+=(ServerConfig.txt ServerUsers.txt TpPresets.json UserPermissions.json)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "sven" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "tf2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "tfc" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ti" ]; then
array_configs+=(Game.ini Engine.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ts" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ts3" ]; then
array_configs+=(ts3server.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
elif [ "${shortname}" == "tw" ]; then
array_configs+=(server.cfg ctf.cfg dm.cfg duel.cfg tdm.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "terraria" ]; then
array_configs+=(serverconfig.txt)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "tu" ]; then
- fn_check_cfgdir
array_configs+=(TowerServer.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ut" ]; then
array_configs+=(Game.ini Engine.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ut2k4" ]; then
array_configs+=(UT2004.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "ut99" ]; then
array_configs+=(Default.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -821,25 +762,21 @@ elif [ "${shortname}" == "vints" ]; then
:
elif [ "${shortname}" == "vs" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "wet" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "wf" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "wmc" ]; then
array_configs+=(config.yml)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -851,19 +788,16 @@ elif [ "${shortname}" == "xnt" ]; then
fn_list_config_locations
elif [ "${shortname}" == "wurm" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "zmr" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "zps" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
diff --git a/lgsm/modules/install_dst_token.sh b/lgsm/modules/install_dst_token.sh
index fd0b4727b..93ac1b8a4 100644
--- a/lgsm/modules/install_dst_token.sh
+++ b/lgsm/modules/install_dst_token.sh
@@ -12,7 +12,7 @@ echo -e "${bold}${lightyellow}Enter ${gamename} Cluster Token${default}"
fn_messages_separator
echo -e "A cluster token is required to run this server!"
echo -e "Follow the instructions in this link to obtain this key:"
-echo -e "https://linuxgsm.com/dst-auth-token"
+echo -e "${italic}https://linuxgsm.com/dst-auth-token"
echo -e ""
if [ -z "${autoinstall}" ]; then
overwritetoken="true"
diff --git a/lgsm/modules/install_eula.sh b/lgsm/modules/install_eula.sh
index 272ff205a..f32a1931e 100644
--- a/lgsm/modules/install_eula.sh
+++ b/lgsm/modules/install_eula.sh
@@ -19,11 +19,11 @@ echo -e ""
echo -e "${bold}${lightyellow}Accept ${gamename} EULA${default}"
fn_messages_separator
echo -e "You are required to accept the EULA:"
-echo -e "${eulaurl}"
+echo -e ""
+echo -e "${italic}${eulaurl}${default}"
echo -e ""
if [ -z "${autoinstall}" ]; then
echo -e "By continuing you are indicating your agreement to the EULA."
- echo -e ""
if ! fn_prompt_yn "Continue?" Y; then
exitcode=0
core_exit.sh
diff --git a/lgsm/modules/install_gslt.sh b/lgsm/modules/install_gslt.sh
index 960b1e20c..e4e4dbad7 100644
--- a/lgsm/modules/install_gslt.sh
+++ b/lgsm/modules/install_gslt.sh
@@ -11,17 +11,16 @@ echo -e ""
echo -e "${bold}${lightyellow}Game Server Login Token${default}"
fn_messages_separator
if [ "${shortname}" == "csgo" ] || [ "${shortname}" == "css" ] || [ "${shortname}" == "nmrih" ] || [ "${shortname}" == "bs" ]; then
- echo -e "GSLT is required to run a public ${gamename} server"
+ echo -e "GSLT is required to run a public ${gamename} server."
fn_script_log_info "GSLT is required to run a public ${gamename} server"
else
- echo -e "GSLT is an optional feature for ${gamename} server"
+ echo -e "GSLT is an optional feature for ${gamename} server."
fn_script_log_info "GSLT is an optional feature for ${gamename} server"
fi
-echo -e "Get more info and a token here:"
-echo -e "https://docs.linuxgsm.com/steamcmd/gslt"
-fn_script_log_info "Get more info and a token here:"
-fn_script_log_info "https://docs.linuxgsm.com/steamcmd/gslt"
+echo -e ""
+echo -e "More info: ${italic}https://docs.linuxgsm.com/steamcmd/gslt${default}"
+fn_script_log_info "More info: https://docs.linuxgsm.com/steamcmd/gslt"
echo -e ""
if [ -z "${autoinstall}" ]; then
if [ "${shortname}" != "tu" ]; then
@@ -37,11 +36,10 @@ if [ -z "${autoinstall}" ]; then
fi
if [ "${shortname}" == "tu" ]; then
- echo -e "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
- fn_script_log_info "The GSLT can be changed by editing ${servercfgdir}/${servercfg}."
+ echo -e "The GSLT can be changed by editing: ${italic}${servercfgdir}/${servercfg}${default}"
+ fn_script_log_info "The GSLT can be changed by editing: ${servercfgdir}/${servercfg}."
else
- echo -e "The GSLT can be changed by editing ${configdirserver}/${selfname}.cfg."
- fn_script_log_info "The GSLT can be changed by editing ${configdirserver}/${selfname}.cfg."
+ echo -e "The GSLT can be changed by editing: ${italic}${configdirserver}/${selfname}.cfg${default}"
+ fn_script_log_info "The GSLT can be changed by editing: ${configdirserver}/${selfname}.cfg."
fi
fn_sleep_time_1
-echo -e ""
diff --git a/lgsm/modules/install_logs.sh b/lgsm/modules/install_logs.sh
index 3e522a082..9e1b89dbd 100644
--- a/lgsm/modules/install_logs.sh
+++ b/lgsm/modules/install_logs.sh
@@ -7,93 +7,117 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-if [ "${checklogs}" != "1" ]; then
+if [ -z "${checklogs}" ]; then
echo -e ""
echo -e "${bold}${lightyellow}Creating Log Directories${default}"
fn_messages_separator
fi
-# Create LinuxGSM logs.
-echo -en "installing log dir: ${logdir}..."
-mkdir -p "${logdir}"
-if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
-else
- fn_print_ok_eol_nl
-fi
-echo -en "installing LinuxGSM log dir: ${lgsmlogdir}..."
-mkdir -p "${lgsmlogdir}"
-if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
+echo -en "creating log directory [ ${italic}${logdir}${default} ]"
+if [ ! -d "${logdir}" ]; then
+ if ! mkdir -p "${logdir}"; then
+ fn_print_fail_eol_nl
+ core_exit.sh
+ else
+ fn_print_ok_eol_nl
+ fi
else
- fn_print_ok_eol_nl
+ fn_print_skip_eol_nl
fi
-echo -en "creating LinuxGSM log: ${lgsmlog}..."
-touch "${lgsmlog}"
-if [ $? != 0 ]; then
- fn_print_fail_eol_nl
- core_exit.sh
+
+echo -en "creating script log directory [ ${italic}${lgsmlogdir}${default} ]"
+if [ ! -d "${lgsmlogdir}" ]; then
+ if ! mkdir -p "${lgsmlogdir}"; then
+ fn_print_fail_eol_nl
+ core_exit.sh
+ else
+ fn_print_ok_eol_nl
+ fi
else
- fn_print_ok_eol_nl
+ fn_print_skip_eol_nl
fi
-# Create Console logs.
-if [ "${consolelogdir}" ]; then
- echo -en "installing console log dir: ${consolelogdir}..."
- mkdir -p "${consolelogdir}"
- if [ $? != 0 ]; then
+
+echo -en "creating script log [ ${italic}${lgsmlog}${default} ]"
+if [ ! -f "${lgsmlog}" ]; then
+ if ! touch "${lgsmlog}"; then
fn_print_fail_eol_nl
core_exit.sh
else
fn_print_ok_eol_nl
fi
- echo -en "creating console log: ${consolelog}..."
- if ! touch "${consolelog}"; then
+else
+ fn_print_skip_eol_nl
+fi
+
+echo -en "creating console log directory [ ${italic}${consolelogdir}${default} ]"
+if [ ! -d "${consolelogdir}" ]; then
+ if ! mkdir -p "${consolelogdir}"; then
fn_print_fail_eol_nl
core_exit.sh
else
fn_print_ok_eol_nl
fi
+else
+ fn_print_skip_eol_nl
fi
-# Create Game logs.
-if [ "${gamelogdir}" ] && [ ! -d "${gamelogdir}" ]; then
- echo -en "installing game log dir: ${gamelogdir}..."
- if ! mkdir -p "${gamelogdir}"; then
+echo -en "creating console log [ ${italic}${consolelog}${default} ]"
+if [ ! -f "${consolelog}" ]; then
+ if ! touch "${consolelog}"; then
fn_print_fail_eol_nl
core_exit.sh
else
fn_print_ok_eol_nl
fi
+else
+ fn_print_skip_eol_nl
+fi
+
+if [ -n "${gamelogdir}" ]; then
+ echo -en "creating game log directory [ ${italic}${gamelogdir}${default} ]"
+ if [ ! -d "${gamelogdir}" ]; then
+ if ! mkdir -p "${gamelogdir}"; then
+ fn_print_fail_eol_nl
+ core_exit.sh
+ else
+ fn_print_ok_eol_nl
+ fi
+ else
+ fn_print_skip_eol_nl
+ fi
fi
# Symlink to gamelogdir
# unless gamelogdir is within logdir.
# e.g serverfiles/log is not within log/: symlink created
# log/server is in log/: symlink not created
-if [ "${gamelogdir}" ]; then
- if [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
- echo -en "creating symlink to game log dir: ${logdir}/server -> ${gamelogdir}..."
+if [ -n "${gamelogdir}" ] && [ "${gamelogdir:0:${#logdir}}" != "${logdir}" ]; then
+ echo -en "creating symlink to game log directory [ ${italic}${logdir}/server -> ${gamelogdir}${default} ]"
+ # if path does not exist or does not match gamelogdir
+ if [ ! -h "${logdir}/server" ] || [ "$(readlink -f "${logdir}/server")" != "${gamelogdir}" ]; then
if ! ln -nfs "${gamelogdir}" "${logdir}/server"; then
fn_print_fail_eol_nl
core_exit.sh
else
fn_print_ok_eol_nl
fi
+ else
+ fn_print_skip_eol_nl
fi
fi
# If server uses SteamCMD create a symbolic link to the Steam logs.
if [ -d "${HOME}/.steam/steam/logs" ]; then
+ echo -en "creating symlink to steam log directory [ ${italic}${logdir}/steam -> ${HOME}/.steam/steam/logs${default} ]"
if [ ! -L "${logdir}/steam" ]; then
- echo -en "creating symlink to steam log dir: ${logdir}/steam -> ${HOME}/.steam/steam/logs..."
if ! ln -nfs "${HOME}/.steam/steam/logs" "${logdir}/steam"; then
fn_print_fail_eol_nl
core_exit.sh
else
fn_print_ok_eol_nl
fi
+ else
+ fn_print_skip_eol_nl
fi
fi
fn_script_log_info "Logs installed"
diff --git a/lgsm/modules/install_server_dir.sh b/lgsm/modules/install_server_dir.sh
index 2922f397a..318e4bc80 100644
--- a/lgsm/modules/install_server_dir.sh
+++ b/lgsm/modules/install_server_dir.sh
@@ -10,10 +10,16 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo -e ""
echo -e "${bold}${lightyellow}Server Directory${default}"
fn_messages_separator
+echo -en "creating serverfiles directory [ ${italic}${serverfiles}${default} ]"
+
if [ -d "${serverfiles}" ]; then
- fn_print_warning_nl "A server is already installed here."
+ fn_print_skip_eol_nl
+ echo -e ""
+ echo -e "${italic}A game server is already exists at this location.${default}"
+else
+ fn_print_ok_eol_nl
fi
-pwd
+
if [ -z "${autoinstall}" ]; then
if ! fn_prompt_yn "Continue?" Y; then
exitcode=0
@@ -21,5 +27,5 @@ if [ -z "${autoinstall}" ]; then
fi
fi
if [ ! -d "${serverfiles}" ]; then
- mkdir -v "${serverfiles}"
+ mkdir "${serverfiles}"
fi
diff --git a/lgsm/modules/install_server_files.sh b/lgsm/modules/install_server_files.sh
index baa18aef7..c667a7fe4 100644
--- a/lgsm/modules/install_server_files.sh
+++ b/lgsm/modules/install_server_files.sh
@@ -241,6 +241,10 @@ fn_install_server_files() {
fn_clear_tmp
}
+if [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "ut" ]; then
+ install_eula.sh
+fi
+
echo -e ""
echo -e "${bold}${lightyellow}Installing ${gamename} Server${default}"
fn_messages_separator
@@ -255,12 +259,10 @@ fi
if [ "${shortname}" == "ts3" ]; then
update_ts3.sh
elif [ "${shortname}" == "mc" ]; then
- install_eula.sh
update_mc.sh
elif [ "${shortname}" == "mcb" ]; then
update_mcb.sh
elif [ "${shortname}" == "pmc" ]; then
- install_eula.sh
update_pmc.sh
elif [ "${shortname}" == "wmc" ] || [ "${shortname}" == "vpmc" ]; then
update_pmc.sh
@@ -287,7 +289,6 @@ fi
if [ -z "${autoinstall}" ]; then
echo -e ""
- fn_messages_separator
if ! fn_prompt_yn "Was the install successful?" Y; then
install_retry.sh
fi
diff --git a/lgsm/modules/install_squad_license.sh b/lgsm/modules/install_squad_license.sh
index 0bb71c4a8..7b7d2ca66 100644
--- a/lgsm/modules/install_squad_license.sh
+++ b/lgsm/modules/install_squad_license.sh
@@ -14,7 +14,7 @@ echo -e "Server license is an optional feature for ${gamename} server"
fn_script_log_info "Server license is an optional feature for ${gamename} server"
echo -e "Get more info and a server license here:"
-echo -e "https://squad.fandom.com/wiki/Server_licensing"
+echo -e "${italic}https://squad.fandom.com/wiki/Server_licensing"
fn_script_log_info "Get more info and a server license here:"
fn_script_log_info "https://squad.fandom.com/wiki/Server_licensing"
echo -e ""
diff --git a/lgsm/modules/install_stats.sh b/lgsm/modules/install_stats.sh
index fa43c280f..16653578b 100644
--- a/lgsm/modules/install_stats.sh
+++ b/lgsm/modules/install_stats.sh
@@ -13,6 +13,7 @@ fn_messages_separator
echo -e "Assist LinuxGSM development by sending anonymous stats to developers."
echo -e "Collected data is publicly available: ${italic}https://linuxgsm.com/data/usage${default}"
echo -e "More info: ${italic}https://docs.linuxgsm.com/configuration/linuxgsm-stats${default}"
+echo -e ""
echo -e "The following info will be sent: "
echo -e "* game server"
echo -e "* distro"
@@ -24,5 +25,6 @@ if [ -z "${autoinstall}" ]; then
fn_print_information_nl "Stats setting is now enabled in common.cfg."
fi
else
- fn_print_information_nl "auto-install leaves stats off by default. Stats can be enabled in common.cfg"
+ echo -e ""
+ echo -e "auto-install leaves stats off by default. Stats can be enabled in ${italic}common.cfg${default}"
fi
diff --git a/lgsm/modules/install_ts3db.sh b/lgsm/modules/install_ts3db.sh
index c8f90a9cf..584fbd7c0 100644
--- a/lgsm/modules/install_ts3db.sh
+++ b/lgsm/modules/install_ts3db.sh
@@ -11,8 +11,8 @@ fn_install_ts3db_mariadb() {
if [ ! -f "${serverfiles}/libts3db_mariadb.so" ]; then
echo -e "copying libmariadb.so.2...\c"
cp "${serverfiles}/redist/libmariadb.so.2" "${serverfiles}"
- local exitcode=$?
- if [ "${exitcode}" != "0" ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "copying libmariadb.so.2"
core_exit.sh
diff --git a/lgsm/modules/install_ut2k4_key.sh b/lgsm/modules/install_ut2k4_key.sh
index 7ffbba20c..2829da8d6 100644
--- a/lgsm/modules/install_ut2k4_key.sh
+++ b/lgsm/modules/install_ut2k4_key.sh
@@ -12,7 +12,7 @@ echo -e "${bold}${lightyellow}Enter ${gamename} CD Key${default}"
fn_messages_separator
echo -e "To get your server listed on the Master Server list"
echo -e "you must get a free CD key. Get a key here:"
-echo -e "https://www.epicgames.com/unrealtournament/forums/cdkey.php?2004"
+echo -e "${italic}https://www.epicgames.com/unrealtournament/forums/cdkey.php?2004"
echo -e ""
if [ -z "${autoinstall}" ]; then
echo -e "Once you have the key enter it below"
diff --git a/lgsm/modules/mods_core.sh b/lgsm/modules/mods_core.sh
index 47bef26f7..b88e0c05e 100644
--- a/lgsm/modules/mods_core.sh
+++ b/lgsm/modules/mods_core.sh
@@ -57,8 +57,8 @@ fn_mod_lowercase() {
# Finally we can rename the file
mv "${src}" "${dst}"
# Exit if it fails for any reason
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
core_exit.sh
fi
@@ -74,8 +74,8 @@ fn_mod_create_filelist() {
fn_sleep_time
# ${modsdir}/${modcommand}-files.txt.
find "${extractdest}" -mindepth 1 -printf '%P\n' > "${modsdir}/${modcommand}-files.txt"
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Building ${modsdir}/${modcommand}-files.txt"
core_exit.sh
@@ -94,8 +94,8 @@ fn_mod_copy_destination() {
echo -en "copying ${modprettyname} to ${modinstalldir}..."
fn_sleep_time
cp -Rf "${extractdest}/." "${modinstalldir}/"
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Copying ${modprettyname} to ${modinstalldir}"
else
@@ -132,8 +132,8 @@ fn_mod_tidy_files_list() {
# Delete line(s) matching exactly.
sed -i "/^${removefilevar}$/d" "${modsdir}/${modcommand}-files.txt"
# Exit on error.
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Error while tidying line: ${removefilevar} from: ${modsdir}/${modcommand}-files.txt"
core_exit.sh
@@ -388,7 +388,7 @@ fn_create_mods_dir() {
echo -en "creating LinuxGSM mods data directory ${modsdir}..."
mkdir -p "${modsdir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Creating mod download dir ${modsdir}"
core_exit.sh
@@ -402,7 +402,7 @@ fn_create_mods_dir() {
echo -en "creating mods install directory ${modinstalldir}..."
mkdir -p "${modinstalldir}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Creating mod install directory ${modinstalldir}"
core_exit.sh
@@ -425,7 +425,7 @@ fn_mods_create_tmp_dir() {
mkdir -p "${modstmpdir}"
exitcode=$?
echo -en "creating mod download directory ${modstmpdir}..."
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Creating mod download directory ${modstmpdir}"
core_exit.sh
@@ -442,7 +442,7 @@ fn_mods_clear_tmp_dir() {
echo -en "clearing mod download directory ${modstmpdir}..."
rm -rf "${modstmpdir:?}"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Clearing mod download directory ${modstmpdir}"
core_exit.sh
@@ -580,7 +580,7 @@ fn_mod_install_liblist_gam_file() {
grep -q "addons/metamod/dlls/metamod.dll" "${modinstalldir}/liblist.gam"
exitcode=$?
# if replacement back didn't happen, error out.
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
@@ -596,7 +596,7 @@ fn_mod_install_liblist_gam_file() {
grep -q "addons/metamod/dlls/metamod.so" "${modinstalldir}/liblist.gam"
exitcode=$?
# if replacement back didn't happen, error out
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
@@ -614,11 +614,11 @@ fn_mod_install_liblist_gam_file() {
grep -q "addons/metamod/dlls/metamod.dylib" "${modinstalldir}/liblist.gam"
exitcode=$?
# if replacement back didn't happen, error out.
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
fi
@@ -638,11 +638,11 @@ fn_mod_remove_liblist_gam_file() {
grep -q "${moddll}" "${modinstalldir}/liblist.gam"
exitcode=$?
# if replacement back didn't happen, error out.
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
@@ -654,11 +654,11 @@ fn_mod_remove_liblist_gam_file() {
grep -q "${modso}" "${modinstalldir}/liblist.gam"
exitcode=$?
# if replacement back didn't happen, error out
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
@@ -672,11 +672,11 @@ fn_mod_remove_liblist_gam_file() {
grep -q "${moddylib}" "${modinstalldir}/liblist.gam"
# if replacement back didn't happen, error out.
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
fi
@@ -691,15 +691,15 @@ fn_mod_install_amxmodx_file() {
echo -en "adding amxmodx_mm_i386.so in plugins.ini..."
grep -q "amxmodx_mm_i386.so" "${modinstalldir}/addons/metamod/plugins.ini"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
# file exists but the entry does not, let's add it
echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" >> "${modinstalldir}/addons/metamod/plugins.ini"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
fi
@@ -707,12 +707,12 @@ fn_mod_install_amxmodx_file() {
# create new file and add the mod to it
echo "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" > "${modinstalldir}/addons/metamod/plugins.ini"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
core_exit.sh
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
fi
@@ -726,17 +726,17 @@ fn_mod_remove_amxmodx_file() {
grep -q "linux addons/amxmodx/dlls/amxmodx_mm_i386.so" "${modinstalldir}/addons/metamod/plugins.ini"
# iIs it found? If so remove it and clean up
exitcode=$?
- if [ "${exitcode}" == 0 ]; then
+ if [ "${exitcode}" -eq 0 ]; then
# delete the line we inserted
sed -i '/linux addons\/amxmodx\/dlls\/amxmodx_mm_i386.so/d' "${modinstalldir}/addons/metamod/plugins.ini"
# remove empty lines
sed -i '/^$/d' "${modinstalldir}/addons/metamod/plugins.ini"
exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
fn_script_log_fail "${logentry}"
fn_print_fail_eol_nl
else
- fn_script_log_pass ${logentry}
+ fn_script_log_pass "${logentry}"
fn_print_ok_eol_nl
fi
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index 65ebc2546..e3a4776ce 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -15,8 +15,8 @@ fn_update_dl() {
else
unzip -oq "${tmpdir}/bedrock_server.${remotebuildversion}.zip" -x "permissions.json" "server.properties" "allowlist.json" -d "${serverfiles}"
fi
- local exitcode=$?
- if [ "${exitcode}" != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol_nl
fn_script_log_fail "Extracting ${local_filename}"
if [ -f "${lgsmlog}" ]; then
@@ -27,7 +27,9 @@ fn_update_dl() {
core_exit.sh
else
fn_print_ok_eol_nl
- fn_script_log_pass "Extracting ${local_filename}"
+ if [ -f "${lgsmlog}" ]; then
+ fn_script_log_pass "Extracting ${local_filename}"
+ fi
fn_clear_tmp
fi
}
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index b3c7d0dc2..325e795df 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -5,7 +5,7 @@
# Website: https://linuxgsm.com
# Description: Handles updating of PaperMC and Waterfall servers.
-module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_dl() {
# Download and extract files to serverfiles.
diff --git a/lgsm/modules/update_ut99.sh b/lgsm/modules/update_ut99.sh
index cb74ec3b7..58927fd18 100644
--- a/lgsm/modules/update_ut99.sh
+++ b/lgsm/modules/update_ut99.sh
@@ -5,7 +5,7 @@
# Website: https://linuxgsm.com
# Description: Handles updating of Unreal Tournament 99 servers.
-module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_dl() {
# Download and extract files to serverfiles.
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index f2cdbe324..c0b0ddaeb 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -5,7 +5,7 @@
# Website: https://linuxgsm.com
# Description: Handles updating of Unreal Tournament 99 servers.
-module_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_dl() {
# Download and extract files to serverfiles.
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 9c35a6b84..9bb4ae872 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -70,6 +70,42 @@ core_modules.sh() {
# Bootstrap
# Fetches the core modules required before passed off to core_dl.sh.
+fn_bootstrap_fetch_trap() {
+ echo -e ""
+ echo -en "downloading ${local_filename}"
+ fn_print_canceled_eol_nl
+ fn_script_log_info "Downloading ${local_filename}...CANCELED"
+ rm -f "${local_filedir:?}/${local_filename}"
+ echo -en "downloading ${local_filename}"
+ fn_print_removed_eol_nl
+ fn_script_log_info "Downloading ${local_filename}...REMOVED"
+ core_exit.sh
+}
+
+# Fetches modules from the Git repo during first download.
+fn_bootstrap_fetch_module() {
+ github_file_url_dir="lgsm/modules"
+ github_file_url_name="${modulefile}"
+ # If master branch will currently running LinuxGSM version to prevent "version mixing". This is ignored if a fork.
+ if [ "${githubbranch}" == "master" ] && [ "${githubuser}" == "GameServerManagers" ] && [ "${commandname}" != "UPDATE-LGSM" ]; then
+ remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${version}/${github_file_url_dir}/${github_file_url_name}"
+ remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${version}/${github_file_url_dir}/${github_file_url_name}"
+ else
+ remote_fileurl="https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
+ remote_fileurl_backup="https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${github_file_url_name}"
+ fi
+ remote_fileurl_name="GitHub"
+ remote_fileurl_backup_name="Bitbucket"
+ local_filedir="${modulesdir}"
+ local_filename="${github_file_url_name}"
+ chmodx="chmodx"
+ run="run"
+ forcedl="noforce"
+ hash="nohash"
+ # Passes vars to the file download module.
+ fn_fetch_file "${remote_fileurl}" "${remote_fileurl_backup}" "${remote_fileurl_name}" "${remote_fileurl_backup_name}" "${local_filedir}" "${local_filename}" "${chmodx}" "${run}" "${forcedl}" "${hash}"
+}
+
fn_bootstrap_fetch_file() {
remote_fileurl="${1}"
remote_fileurl_backup="${2}"
@@ -80,7 +116,8 @@ fn_bootstrap_fetch_file() {
chmodx="${7:-0}"
run="${8:-0}"
forcedl="${9:-0}"
- md5="${10:-0}"
+ hash="${10:-0}"
+
# Download file if missing or download forced.
if [ ! -f "${local_filedir}/${local_filename}" ] || [ "${forcedl}" == "forcedl" ]; then
# If backup fileurl exists include it.
@@ -107,44 +144,54 @@ fn_bootstrap_fetch_file() {
mkdir -p "${local_filedir}"
fi
# Trap will remove part downloaded files if canceled.
- trap fn_fetch_trap INT
- # Larger files show a progress bar.
-
- echo -en "fetching ${fileurl_name} ${local_filename}...\c"
- curlcmd=$(curl --connect-timeout 3 -s --fail -L -o "${local_filedir}/${local_filename}" "${fileurl}" 2>&1)
-
- local exitcode=$?
+ trap fn_bootstrap_fetch_trap INT
+ curlcmd=(curl --connect-timeout 3 --fail -L -o "${local_filedir}/${local_filename}" --retry 2 -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randomint}.212 Safari/537.36")
+
+ # if is large file show progress, else be silent
+ local exitcode=""
+ large_files=("bz2" "gz" "zip" "jar" "xz")
+ if grep -qE "(^|\s)${local_filename##*.}(\s|$)" <<< "${large_files[@]}"; then
+ echo -e "downloading file [ ${local_filename} ]"
+ fn_sleep_time
+ "${curlcmd[@]}" --progress-bar "${fileurl}" 2>&1
+ exitcode=$?
+ echo -en "downloading file [ ${local_filename} ]"
+ else
+ echo -en "fetching ${fileurl_name} [ ${local_filename} ]\c"
+ "${curlcmd[@]}" --silent --show-error "${fileurl}" 2>&1
+ exitcode=$?
+ fi
# Download will fail if downloads a html file.
if [ -f "${local_filedir}/${local_filename}" ]; then
- if [ -n "$(head "${local_filedir}/${local_filename}" | grep "DOCTYPE")" ]; then
- rm -f "${local_filedir:?}/${local_filename:?}"
+ if head -n 1 "${local_filedir}/${local_filename}" | grep -q "DOCTYPE"; then
+ rm "${local_filedir:?}/${local_filename:?}"
local exitcode=2
fi
fi
# On first try will error. On second try will fail.
- if [ "${exitcode}" != 0 ]; then
+ if [ "${exitcode}" -ne 0 ]; then
if [ ${counter} -ge 2 ]; then
- echo -e "FAIL"
+ echo -e " ... FAIL"
if [ -f "${lgsmlog}" ]; then
- fn_script_log_fail "Downloading ${local_filename}"
+ fn_script_log_fail "Downloading ${local_filename}..."
fn_script_log_fail "${fileurl}"
fi
core_exit.sh
else
- echo -e "ERROR"
+ echo -e " ... ERROR"
if [ -f "${lgsmlog}" ]; then
- fn_script_log_error "Downloading ${local_filename}"
+ fn_script_log_error "Downloading ${local_filename}..."
fn_script_log_error "${fileurl}"
fi
fi
else
- echo -en "OK"
- sleep 0.3
- echo -en "\033[2K\\r"
+ echo -en " ... OK"
+ sleep "0.1"
+ echo -e "\033\\r"
if [ -f "${lgsmlog}" ]; then
- fn_script_log_pass "Downloading ${local_filename}"
+ fn_script_log_pass "Downloading ${local_filename}..."
fi
# Make file executable if chmodx is set.
@@ -246,7 +293,8 @@ fn_install_menu_whiptail() {
menu_options+=("${val//\"/}" "${key//\"/}")
done < "${options}"
OPTION=$(${menucmd} --title "${title}" --menu "${caption}" "${height}" "${width}" "${menuheight}" "${menu_options[@]}" 3>&1 1>&2 2>&3)
- if [ $? == 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -eq 0 ]; then
eval "$resultvar=\"${OPTION}\""
else
eval "$resultvar="
@@ -395,13 +443,14 @@ else
fi
if [ ! -f "${configdirserver}/_default.cfg" ]; then
mkdir -p "${configdirserver}"
- echo -en "copying _default.cfg...\c"
+ echo -en "copying _default.cfg\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
- if [ $? != 0 ]; then
- echo -e "FAIL"
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
+ echo -e " ... FAIL"
exit 1
else
- echo -e "OK"
+ echo -e " ... OK"
fi
else
config_file_diff=$(diff -q "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg")
@@ -409,11 +458,12 @@ else
fn_print_warn_nl "_default.cfg has altered. reloading config."
echo -en "copying _default.cfg...\c"
cp -R "${configdirdefault}/config-lgsm/${gameservername}/_default.cfg" "${configdirserver}/_default.cfg"
- if [ $? != 0 ]; then
+ exitcode=$?
+ if [ "${exitcode}" -ne 0 ]; then
echo -e "FAIL"
exit 1
else
- echo -e "OK"
+ echo -e " ... OK"
fi
fi
fi
From 36717af4f2c24d2a9446478c12f332f7de08f88e Mon Sep 17 00:00:00 2001
From: Tom Burnett
Date: Wed, 11 Dec 2024 14:29:44 -0800
Subject: [PATCH 090/154] fix(q3): Fix q3-only typo in install_config.sh
(#4709)
---
lgsm/modules/install_config.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index ae395c205..f12afd386 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -614,7 +614,7 @@ elif [ "${shortname}" == "q2" ]; then
fn_list_config_locations
elif [ "${shortname}" == "q3" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_configs
+ fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
From d7e820c21a76a3d7257ffcef54073422ac8d1378 Mon Sep 17 00:00:00 2001
From: Christian
Date: Wed, 18 Dec 2024 23:09:36 +0100
Subject: [PATCH 091/154] fix(sf): add tcp gameport to details (#4681)
---
lgsm/modules/info_messages.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 91d78e670..09576e861 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1477,6 +1477,7 @@ fn_info_messages_sm() {
{
fn_port "header"
fn_port "Game" port udp
+ fn_port "Game" port tcp
fn_port "Query" queryport udp
fn_port "Telnet" telnetport tcp
} | column -s $'\t' -t
From d8d833ac490e3a1bf29e537f04566f607d08c1be Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 19 Dec 2024 21:22:55 +0000
Subject: [PATCH 092/154] fix(steamcmd): update remotebuildversion variable to
work with recent steamcmd changes
---
lgsm/modules/core_steamcmd.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/core_steamcmd.sh b/lgsm/modules/core_steamcmd.sh
index 552ff1905..2f2fa17eb 100644
--- a/lgsm/modules/core_steamcmd.sh
+++ b/lgsm/modules/core_steamcmd.sh
@@ -182,8 +182,9 @@ fn_update_steamcmd_remotebuild() {
if [ "${CI}" ]; then
${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +quit > /dev/null 2>&1
fi
+
# password for branch not needed to check the buildid
- remotebuildversion=$(${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +quit | sed -e '/"branches"/,/^}/!d' | sed -n "/\"${branch}\"/,/}/p" | grep -m 1 buildid | tr -cd '[:digit:]')
+ remotebuildversion=$(${steamcmdcommand} +login "${steamuser}" "${steampass}" +app_info_request "${appid}" +login "${steamuser}" "${steampass}" +app_info_update 1 +app_info_print "${appid}" +quit | sed -e '/"branches"/,/^}/!d' | sed -n "/\"${branch}\"/,/}/p" | grep -m 1 buildid | tr -cd '[:digit:]')
if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
From 1e07895f09332e2398279900938c175e91da8775 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 19 Dec 2024 21:32:34 +0000
Subject: [PATCH 093/154] Release v24.3.3
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index e4fa35b32..ae6e7ea7a 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.3.2"
+modulesversion="v24.3.3"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 9c35a6b84..96ce50a6d 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.3.2"
+version="v24.3.3"
shortname="core"
gameservername="core"
commandname="CORE"
From 77eea02b2997c06ef05d6380b6806160146e2c12 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 31 Dec 2024 02:24:16 +0000
Subject: [PATCH 094/154] Add error 0x6A6
---
lgsm/modules/core_dl.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lgsm/modules/core_dl.sh b/lgsm/modules/core_dl.sh
index 72d50d69a..3b9ec9945 100644
--- a/lgsm/modules/core_dl.sh
+++ b/lgsm/modules/core_dl.sh
@@ -128,6 +128,9 @@ fn_dl_steamcmd() {
elif [ -n "$(grep "0x626" "${steamcmdlog}" | tail -1)" ] || [ -n "$(grep "0x626" "${steamcmdlog}" | tail -1)" ]; then
fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Missing update files"
fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Missing update files"
+ elif [ -n "$(grep "0x6A6" "${steamcmdlog}" | tail -1)" ]; then
+ fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Corrupt update files"
+ fn_script_log_error "${commandaction} ${selfname}: ${remotelocation}: Corrupt update files"
else
fn_print_error2_nl "${commandaction} ${selfname}: ${remotelocation}: Unknown error occured"
fn_print_nl "Please provide content log to LinuxGSM developers https://linuxgsm.com/steamcmd-error"
From 3e4c9b28dd4a5d4655d23f75c5936cfa473e390c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 31 Dec 2024 02:32:40 +0000
Subject: [PATCH 095/154] minor ui fix
---
lgsm/modules/command_monitor.sh | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index 78df55330..6baa24a08 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -344,7 +344,8 @@ fn_monitor_query() {
done
# Second counter will wait for 15s before breaking loop.
for seconds in {1..15}; do
- fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt} : ${cyan}WAIT${default}"
+ fn_print_fail "Querying port: ${querymethod}: ${ip}:${queryport} : ${totalseconds}/${queryattempt}"
+ fn_print_wait_eol
fn_sleep_time_1
totalseconds=$((totalseconds + 1))
if [ "${seconds}" == "15" ]; then
From 0ad6df3e2139022bd41f4eb858a2a2f76e3c7f58 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 31 Dec 2024 03:19:30 +0000
Subject: [PATCH 096/154] fix(armar): add rcon details
---
lgsm/modules/command_postdetails.sh | 2 --
lgsm/modules/info_game.sh | 2 ++
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/command_postdetails.sh b/lgsm/modules/command_postdetails.sh
index f9e93be4a..61d537440 100644
--- a/lgsm/modules/command_postdetails.sh
+++ b/lgsm/modules/command_postdetails.sh
@@ -15,8 +15,6 @@ fn_bad_postdetailslog() {
core_exit.sh
}
-fn_print_header
-
# source all of the modules defined in the details command.
info_messages.sh
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 62292ffa0..4e1d5dedd 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -936,6 +936,8 @@ fn_info_game_armar() {
fn_info_game_json "queryport" ".a2s.port"
fn_info_game_json "servername" ".game.name"
fn_info_game_json "serverpassword" ".game.password"
+ fn_info_game_json "rconpassword" ".rcon.password"
+ fn_info_game_json "rconport" ".rcon.port"
fi
adminpassword="${adminpassword:-"NOT SET"}"
battleeyeport="$((port + 4))"
From 8649aa8c1e80a3b5b22fee42dae802dff0af6fa3 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 31 Dec 2024 03:23:18 +0000
Subject: [PATCH 097/154] fix: adminpassword not generating
---
lgsm/modules/install_config.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index f12afd386..43d775c85 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -120,7 +120,7 @@ fn_set_config_vars() {
if [ -f "${servercfgfullpath}" ]; then
randomstring=$(tr -dc 'A-Za-z0-9_' < /dev/urandom 2> /dev/null | head -c 8 | xargs)
servername="LinuxGSM"
- rconpass="admin${randomstring}"
+ adminpass="admin${randomstring}"
echo -en "setting hostname\c"
fn_script_log_info "setting hostname"
fn_sleep_time
From bcb40baef6241880d0b4e88e5902afd4fbf51cf6 Mon Sep 17 00:00:00 2001
From: Zechiax <106590288+Zechiax@users.noreply.github.com>
Date: Sun, 5 Jan 2025 00:33:30 +0100
Subject: [PATCH 098/154] fix(papermc): update API URL to prevent update
failures (#4728)
---
lgsm/modules/update_pmc.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index 325e795df..75d99d140 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -33,7 +33,7 @@ fn_update_localbuild() {
fn_update_remotebuild() {
# Get remote build info.
- apiurl="https://papermc.io/api/v2/projects"
+ apiurl="https://api.papermc.io/v2/projects"
# Get list of projects.
remotebuildresponse=$(curl -s "${apiurl}")
# Get list of Minecraft versions for project.
From f3edc74de1463107ddf88676e402b4c13ecaa29f Mon Sep 17 00:00:00 2001
From: Christian
Date: Sun, 5 Jan 2025 00:34:02 +0100
Subject: [PATCH 099/154] fix(sm): remove config install as it is not used
(#4730)
---
lgsm/modules/install_config.sh | 3 ---
1 file changed, 3 deletions(-)
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 43d775c85..c78c74fb2 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -662,9 +662,6 @@ elif [ "${shortname}" == "sf" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
-elif [ "${shortname}" == "sm" ]; then
- fn_default_config_local
- fn_list_config_locations
elif [ "${shortname}" == "sol" ]; then
array_configs+=(soldat.ini)
fn_default_config_remote
From 2b171da14cea7a79ab312b21457eab5d0a06d2bf Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Sat, 4 Jan 2025 23:34:34 +0000
Subject: [PATCH 100/154] docs(license): update copyright year(s) (#4726)
Co-authored-by: Daniel Gibbs
Co-authored-by: github-actions
---
LICENSE.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/LICENSE.md b/LICENSE.md
index 344a8fb48..c8ab9fa34 100644
--- a/LICENSE.md
+++ b/LICENSE.md
@@ -1,6 +1,6 @@
# The MIT License (MIT)
-Copyright (c) 2012-2024 Daniel Gibbs
+Copyright (c) 2012-2025 Daniel Gibbs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
From 9495437a84ed185ce761b644a0de41f4683a92dd Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 4 Jan 2025 23:38:59 +0000
Subject: [PATCH 101/154] chore: update gamedig
---
package-lock.json | 51 +++++++++++++++++++----------------------------
package.json | 6 +++---
2 files changed, 24 insertions(+), 33 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 076a14533..581f6ea8a 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,11 +7,11 @@
"name": "linuxgsm",
"license": "MIT",
"dependencies": {
- "gamedig": "^5.0.0-beta.2"
+ "gamedig": "^5.1.4"
},
"devDependencies": {
- "prettier": "^3.0.3",
- "prettier-plugin-sh": "^0.13.1"
+ "prettier": "^3.4.2",
+ "prettier-plugin-sh": "^0.14.0"
}
},
"node_modules/@sindresorhus/is": {
@@ -269,19 +269,18 @@
}
},
"node_modules/gamedig": {
- "version": "5.0.0-beta.2",
- "resolved": "https://registry.npmjs.org/gamedig/-/gamedig-5.0.0-beta.2.tgz",
- "integrity": "sha512-YsHoGdb6rXyzdErakd9eSJvUAZCa8Hy+nQpiWZMps158wOovsH35Yrr/Y9wCvn1FDm6NJnHhQYkvtk3zhlmKWQ==",
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/gamedig/-/gamedig-5.1.4.tgz",
+ "integrity": "sha512-MgSbNVGh5QMdrmRTrZ3W7W6sC5/Mx+dMgTy2uZCKQ9vns9eFXkQj61Pw2Y2FNHNMMp4DXFSUMYAPJWLcR16Wwg==",
"dependencies": {
- "cheerio": "^1.0.0-rc.12",
- "gbxremote": "^0.2.1",
- "got": "^13.0.0",
- "iconv-lite": "^0.6.3",
- "long": "^5.2.3",
- "minimist": "^1.2.8",
- "punycode": "^2.3.0",
- "seek-bzip": "^2.0.0",
- "varint": "^6.0.0"
+ "cheerio": "1.0.0-rc.12",
+ "gbxremote": "0.2.1",
+ "got": "13.0.0",
+ "iconv-lite": "0.6.3",
+ "long": "5.2.3",
+ "minimist": "1.2.8",
+ "seek-bzip": "2.0.0",
+ "varint": "6.0.0"
},
"bin": {
"gamedig": "bin/gamedig.js"
@@ -504,9 +503,9 @@
}
},
"node_modules/prettier": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz",
- "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==",
+ "version": "3.4.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.4.2.tgz",
+ "integrity": "sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==",
"dev": true,
"bin": {
"prettier": "bin/prettier.cjs"
@@ -519,9 +518,9 @@
}
},
"node_modules/prettier-plugin-sh": {
- "version": "0.13.1",
- "resolved": "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.13.1.tgz",
- "integrity": "sha512-ytMcl1qK4s4BOFGvsc9b0+k9dYECal7U29bL/ke08FEUsF/JLN0j6Peo0wUkFDG4y2UHLMhvpyd6Sd3zDXe/eg==",
+ "version": "0.14.0",
+ "resolved": "https://registry.npmjs.org/prettier-plugin-sh/-/prettier-plugin-sh-0.14.0.tgz",
+ "integrity": "sha512-hfXulj5+zEl/ulrO5kMuuTPKmXvOg0bnLHY1hKFNN/N+/903iZbNp8NyZBTsgI8dtkSgFfAEIQq0IQTyP1ZVFQ==",
"dev": true,
"dependencies": {
"mvdan-sh": "^0.10.1",
@@ -534,7 +533,7 @@
"url": "https://opencollective.com/unts"
},
"peerDependencies": {
- "prettier": "^3.0.0"
+ "prettier": "^3.0.3"
}
},
"node_modules/process-nextick-args": {
@@ -542,14 +541,6 @@
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/quick-lru": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz",
diff --git a/package.json b/package.json
index 7fa277dcc..404356e5e 100644
--- a/package.json
+++ b/package.json
@@ -5,8 +5,8 @@
"test": "tests"
},
"devDependencies": {
- "prettier": "^3.0.3",
- "prettier-plugin-sh": "^0.13.1"
+ "prettier": "^3.4.2",
+ "prettier-plugin-sh": "^0.14.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
@@ -22,6 +22,6 @@
},
"homepage": "https://github.com/GameServerManagers/LinuxGSM#readme",
"dependencies": {
- "gamedig": "^5.1.3"
+ "gamedig": "^5.1.4"
}
}
From abfe5c1a67f64a433394ccac5fd4f02a76e38c43 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 Jan 2025 11:53:50 +0000
Subject: [PATCH 102/154] fix(st): resolve Stationeers config issues (#4733)
* feat(st): add config install
* update start parameters
* bug
* ui fix
* rename worldname to worldsave
* add worldname to legacy vars
---
.../config-lgsm/stserver/_default.cfg | 4 +-
lgsm/modules/command_dev_query_raw.sh | 2 +-
lgsm/modules/command_monitor.sh | 60 +++++++++----------
lgsm/modules/core_legacy.sh | 6 ++
lgsm/modules/info_game.sh | 2 +-
lgsm/modules/install_config.sh | 5 ++
6 files changed, 45 insertions(+), 34 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/stserver/_default.cfg b/lgsm/config-default/config-lgsm/stserver/_default.cfg
index 2f2fe0ed4..e32bb2303 100644
--- a/lgsm/config-default/config-lgsm/stserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/stserver/_default.cfg
@@ -9,11 +9,11 @@
#### Game Server Settings ####
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
-worldname="moon_save"
+worldsave="moon_save"
worldtype="Moon"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-LOADLATEST ${worldname} ${worldtype}"
+startparameters="-LOAD ${worldsave} ${worldtype}"
#### LinuxGSM Settings ####
diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh
index ea42599f9..ebe54c40f 100644
--- a/lgsm/modules/command_dev_query_raw.sh
+++ b/lgsm/modules/command_dev_query_raw.sh
@@ -198,7 +198,7 @@ fn_messages_separator
echo -e ""
echo -e "${bold}${lightyellow}SS Output${default}"
fn_messages_separator
-fn_info_message_ports
+fn_info_messages_ports
eval "${portcommand}"
echo -e ""
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index 6baa24a08..7feb05455 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -18,10 +18,10 @@ fn_monitor_check_monitoring() {
date '+%s' > "${lockdir:?}/${selfname}-monitoring.lock"
elif [ ! -f "${lockdir}/${selfname}-monitoring.lock" ]; then
# Monitor does not run if lockfile is not found.
- fn_print_dots "Checking lockfile:"
+ fn_print_dots "Checking lockfile"
fn_print_checking_eol
fn_script_log_info "Checking lockfile: CHECKING"
- fn_print_error "Checking lockfile: No lockfile found:"
+ fn_print_error "Checking lockfile: No lockfile found"
fn_print_error_eol_nl
fn_script_log_error "Checking lockfile: No lockfile found: ERROR"
echo -e "* Start ${selfname} to run monitor."
@@ -31,10 +31,10 @@ fn_monitor_check_monitoring() {
fn_monitor_check_install() {
if [ "$(pgrep -fc -u "${USER}" "/bin/bash ./${selfname} install")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} i")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} auto-install")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} ai")" != "0" ]; then
- fn_print_dots "Checking installer:"
+ fn_print_dots "Checking installer"
fn_print_checking_eol
fn_script_log_info "Checking installer: CHECKING"
- fn_print_info "Checking installer: LinuxGSM is installing:"
+ fn_print_info "Checking installer: LinuxGSM is installing"
fn_print_info_eol_nl
fn_script_log_pass "Checking installer: LinuxGSM is installing"
core_exit.sh
@@ -43,9 +43,9 @@ fn_monitor_check_install() {
fn_monitor_check_debug() {
if [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} debug")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} d")" != "0" ]; then
- fn_print_dots "Checking debug:"
+ fn_print_dots "Checking debug"
fn_print_checking_eol
- fn_print_info "Checking debug: Debug is running:"
+ fn_print_info "Checking debug: Debug is running"
fn_print_info_eol_nl
fn_script_log_pass "Checking debug: Debug is running"
core_exit.sh
@@ -54,9 +54,9 @@ fn_monitor_check_debug() {
fn_monitor_check_details() {
if [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} details")" != "0" ] || [ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} dt")" != "0" ]; then
- fn_print_dots "Checking details:"
+ fn_print_dots "Checking details"
fn_print_checking_eol
- fn_print_info "Checking details: Details is running:"
+ fn_print_info "Checking details: Details is running"
fn_print_info_eol_nl
fn_script_log_pass "Checking details: Details is running"
core_exit.sh
@@ -67,9 +67,9 @@ fn_monitor_check_starting() {
# Remove stale lockfile.
if [ -f "${lockdir}/${selfname}-starting.lock" ]; then
if [ "$(find "${lockdir}/${selfname}-starting.lock" -mmin +5)" ]; then
- fn_print_dots "Checking start:"
+ fn_print_dots "Checking start"
fn_print_checking_eol
- fn_print_warn "Checking start: Removing stale lockfile:"
+ fn_print_warn "Checking start: Removing stale lockfile"
fn_print_warn_eol_nl
fn_script_log_warn "Checking start: Removing stale lockfile"
rm -f "${lockdir:?}/${selfname}-starting.lock"
@@ -77,9 +77,9 @@ fn_monitor_check_starting() {
fi
if [ -f "${lockdir}/${selfname}-starting.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} start")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} s")" != "0" ]]; then
- fn_print_dots "Checking start:"
+ fn_print_dots "Checking start"
fn_print_checking_eol
- fn_print_info "Checking start: LinuxGSM is starting:"
+ fn_print_info "Checking start: LinuxGSM is starting"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: LinuxGSM is starting"
core_exit.sh
@@ -90,9 +90,9 @@ fn_monitor_check_stopping() {
# Remove stale lockfile.
if [ -f "${lockdir}/${selfname}-stopping.lock" ]; then
if [ "$(find "${lockdir}/${selfname}-stopping.lock" -mmin +5)" ]; then
- fn_print_dots "Checking stop:"
+ fn_print_dots "Checking stop"
fn_print_checking_eol
- fn_print_warn "Checking stop: Removing stale lockfile:"
+ fn_print_warn "Checking stop: Removing stale lockfile"
fn_print_warn_eol_nl
fn_script_log_warn "Checking stop: Removing stale lockfile"
rm -f "${lockdir:?}/${selfname}-stopping.lock"
@@ -100,9 +100,9 @@ fn_monitor_check_stopping() {
fi
if [ -f "${lockdir}/${selfname}-stopping.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} stop")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} s")" != "0" ]]; then
- fn_print_dots "Checking stop:"
+ fn_print_dots "Checking stop"
fn_print_checking_eol
- fn_print_info "Checking stop: LinuxGSM is stopping:"
+ fn_print_info "Checking stop: LinuxGSM is stopping"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: LinuxGSM is stopping"
core_exit.sh
@@ -113,9 +113,9 @@ fn_monitor_check_backup() {
# Remove stale lockfile.
if [ -f "${lockdir}/backup.lock" ]; then
if [ "$(find "${lockdir}/backup.lock" -mmin +60)" ]; then
- fn_print_dots "Checking backup:"
+ fn_print_dots "Checking backup"
fn_print_checking_eol
- fn_print_warn "Checking backup: Removing stale lockfile:"
+ fn_print_warn "Checking backup: Removing stale lockfile"
fn_print_warn_eol
fn_script_log_warn "Checking backup: Removing stale lockfile"
rm -f "${lockdir:?}/backup.lock"
@@ -123,9 +123,9 @@ fn_monitor_check_backup() {
fi
if [ -f "${lockdir}/backup.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} backup")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} b")" != "0" ]]; then
- fn_print_dots "Checking backup:"
+ fn_print_dots "Checking backup"
fn_print_checking_eol
- fn_print_info "Checking backup: Backup is running:"
+ fn_print_info "Checking backup: Backup is running"
fn_print_info_eol_nl
fn_script_log_info "Checking backup: Backup is running"
core_exit.sh
@@ -136,9 +136,9 @@ fn_monitor_check_update() {
# Remove stale lockfile.
if [ -f "${lockdir}/update.lock" ]; then
if [ "$(find "${lockdir}/update.lock" -mmin +15)" ]; then
- fn_print_dots "Checking update:"
+ fn_print_dots "Checking update"
fn_print_checking_eol
- fn_print_warn "Checking update: Removing stale lockfile:"
+ fn_print_warn "Checking update: Removing stale lockfile"
fn_print_warn_eol_nl
fn_script_log_warn "Checking update: Removing stale lockfile"
rm -f "${lockdir:?}/update.lock"
@@ -146,9 +146,9 @@ fn_monitor_check_update() {
fi
if [ -f "${lockdir}/update.lock" ] && [[ "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} update")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} validate")" != "0" || "$(pgrep -fcx -u "${USER}" "/bin/bash ./${selfname} v")" != "0" || "$(pgrep -fc force-update "${USER}" "/bin/bash ./${selfname} fu")" != "0" ]]; then
- fn_print_dots "Checking update:"
+ fn_print_dots "Checking update"
fn_print_checking_eol
- fn_print_info "Checking update: LinuxGSM is updating the game server:"
+ fn_print_info "Checking update: LinuxGSM is updating the game server"
fn_print_info_eol_nl
fn_script_log_pass "Checking update: LinuxGSM is updating the game server"
core_exit.sh
@@ -159,10 +159,10 @@ fn_monitor_check_update() {
fn_monitor_check_update_source() {
if [ -f "${consolelogdir}/${selfname}-console.log" ] && [ "${engine}" == "source" ]; then
if grep -q "Your server needs to be restarted in order to receive the latest update." "${consolelogdir}/${selfname}-console.log"; then
- fn_print_dots "Checking update:"
+ fn_print_dots "Checking update"
fn_print_checking_eol
fn_script_log_info "Checking update: CHECKING"
- fn_print_ok "Checking update:"
+ fn_print_ok "Checking update"
fn_print_ok_eol_nl
fn_script_log_info "Checking update: ${selfname} has requested an update and needs to be restarted"
alert="update-request"
@@ -182,7 +182,7 @@ fn_monitor_check_session() {
sessionheight="23"
# Check for PIDS with identical tmux sessions running.
if [ "$(pgrep -fcx "tmux -L ${socketname} new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" -ge "2" ]; then
- fn_print_error "Checking session: There are PIDS with identical tmux sessions running:"
+ fn_print_error "Checking session: There are PIDS with identical tmux sessions running"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: There are PIDS with identical tmux sessions running"
@@ -192,7 +192,7 @@ fn_monitor_check_session() {
core_exit.sh
# Check for tmux pids with the same tmux session and socket names. This will reduce issues with migration to release v23.5.0. #4296
elif [ "$(pgrep -fc -u "${USER}" "tmux -L ${sessionname} new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" != "0" ]; then
- fn_print_error "Checking session: PIDS with the same tmux session and socket names are running:"
+ fn_print_error "Checking session: PIDS with the same tmux session and socket names are running"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: PIDS with the same tmux session and socket names are running"
@@ -202,7 +202,7 @@ fn_monitor_check_session() {
core_exit.sh
# Check for tmux pids that are using the old type of tmux session. This will reduce issues with migration to release v23.5.0. #4296
elif [ "$(pgrep -fc -u "${USER}" "tmux new-session -d -x ${sessionwidth} -y ${sessionheight} -s ${sessionname}")" != "0" ]; then
- fn_print_error "Checking session: PIDS with old type tmux session are running:"
+ fn_print_error "Checking session: PIDS with old type tmux session are running"
fn_print_error_eol_nl
fn_script_log_error "Checking session: ERROR"
fn_script_log_error "Checking session: PIDS with old type tmux session are running"
@@ -233,7 +233,7 @@ fn_monitor_check_session() {
# Monitor will check queryport is set before continuing.
fn_monitor_check_queryport() {
if [ -z "${queryport}" ] || [ "${queryport}" == "0" ]; then
- fn_print_dots "Checking port:"
+ fn_print_dots "Checking port"
fn_print_checking_eol
fn_script_log_info "Checking port: CHECKING"
if [ -n "${rconenabled}" ] && [ "${rconenabled}" != "true" ] && [ "${shortname}" == "av" ]; then
diff --git a/lgsm/modules/core_legacy.sh b/lgsm/modules/core_legacy.sh
index 4c9a55c39..1d5bc430c 100644
--- a/lgsm/modules/core_legacy.sh
+++ b/lgsm/modules/core_legacy.sh
@@ -35,6 +35,12 @@ if [ -n "${autosaveinterval}" ]; then
saveinterval="${autosaveinterval}"
fi
+if [ "${shortname}" == "st" ]; then
+ if [ -n "${worldname}" ]; then
+ worldsave="${worldname}"
+ fi
+fi
+
# Added as part of migrating functions dir to modules dir.
# Will remove functions dir if files in modules dir older than 14 days
functionsdir="${lgsmdir}/modules"
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 4e1d5dedd..3bae60f0b 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -673,7 +673,7 @@ fn_info_game_st() {
saveinterval="${saveinterval:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
- worldname="${worldname:-"NOT SET"}"
+ worldsave="${worldsave:-"NOT SET"}"
worldtype="${worldtype:-"NOT SET"}"
}
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index c78c74fb2..db6b1e5cf 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -687,6 +687,11 @@ elif [ "${shortname}" == "sb" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
+elif [ "${shortname}" == "st" ]; then
+ array_configs+=(setting.xml)
+ fn_default_config_remote
+ fn_set_config_vars
+ fn_list_config_locations
elif [ "${shortname}" == "stn" ]; then
array_configs+=(ServerConfig.txt ServerUsers.txt TpPresets.json UserPermissions.json)
fn_default_config_remote
From 1639bd5d0d37098f3545b7ced7a1fcb9e577b15f Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 Jan 2025 13:27:03 +0000
Subject: [PATCH 103/154] feat: add extra checks to fail if jq is not installed
(#4731)
---
lgsm/modules/check.sh | 2 +-
lgsm/modules/update_jk2.sh | 6 ++++++
lgsm/modules/update_mc.sh | 6 ++++++
lgsm/modules/update_mcb.sh | 6 ++++++
lgsm/modules/update_mta.sh | 6 ++++++
lgsm/modules/update_pmc.sh | 6 ++++++
lgsm/modules/update_ts3.sh | 6 ++++++
lgsm/modules/update_ut99.sh | 6 ++++++
lgsm/modules/update_vints.sh | 6 ++++++
lgsm/modules/update_xnt.sh | 6 ++++++
10 files changed, 55 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/check.sh b/lgsm/modules/check.sh
index 7601898a9..59ac2a329 100644
--- a/lgsm/modules/check.sh
+++ b/lgsm/modules/check.sh
@@ -54,7 +54,7 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
-allowed_commands_array=(BACKUP DEBUG START)
+allowed_commands_array=(BACKUP DEBUG DETAILS START UPDATE)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_deps.sh
diff --git a/lgsm/modules/update_jk2.sh b/lgsm/modules/update_jk2.sh
index ed4886a48..20350aec6 100644
--- a/lgsm/modules/update_jk2.sh
+++ b/lgsm/modules/update_jk2.sh
@@ -152,6 +152,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="github.com"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_mc.sh b/lgsm/modules/update_mc.sh
index 6ece44da4..8cac4067b 100644
--- a/lgsm/modules/update_mc.sh
+++ b/lgsm/modules/update_mc.sh
@@ -167,6 +167,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="mojang.com"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index e3a4776ce..8b66aa006 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -175,6 +175,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="minecraft.net"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_mta.sh b/lgsm/modules/update_mta.sh
index b93dc9af1..e677723a0 100644
--- a/lgsm/modules/update_mta.sh
+++ b/lgsm/modules/update_mta.sh
@@ -160,6 +160,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="linux.mtasa.com"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index 75d99d140..053d1f9ae 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -177,6 +177,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="papermc.io"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${shortname}" == "pmc" ]; then
paperproject="paper"
elif [ "${shortname}" == "vpmc" ]; then
diff --git a/lgsm/modules/update_ts3.sh b/lgsm/modules/update_ts3.sh
index 30ddf2801..8bbbbc2b2 100644
--- a/lgsm/modules/update_ts3.sh
+++ b/lgsm/modules/update_ts3.sh
@@ -171,6 +171,12 @@ fi
# The location where the builds are checked and downloaded.
remotelocation="teamspeak.com"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_ut99.sh b/lgsm/modules/update_ut99.sh
index 58927fd18..f83208e6f 100644
--- a/lgsm/modules/update_ut99.sh
+++ b/lgsm/modules/update_ut99.sh
@@ -153,6 +153,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="github.com"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_vints.sh b/lgsm/modules/update_vints.sh
index 2f7f857a1..1e17cac7d 100644
--- a/lgsm/modules/update_vints.sh
+++ b/lgsm/modules/update_vints.sh
@@ -160,6 +160,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="vintagestory.at"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index c0b0ddaeb..31c5c1249 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -160,6 +160,12 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="github.com"
+if [ "$(command -v jq 2> /dev/null)" ]; then
+ fn_print_fail_nl "jq is not installed"
+ fn_script_log_fatal "jq is not installed"
+ core_exit.sh
+fi
+
if [ "${firstcommandname}" == "INSTALL" ]; then
fn_update_remotebuild
fn_update_dl
From 6adf4da6d824e17cc9c5bdbc4671e0a16603eb27 Mon Sep 17 00:00:00 2001
From: Jimmy Maple <38733055+codingWithJimmy@users.noreply.github.com>
Date: Sun, 5 Jan 2025 11:59:36 -0500
Subject: [PATCH 104/154] fix(mc): correct the of counting players online on
Minecraft servers via gamedig
---
lgsm/modules/query_gamedig.sh | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/lgsm/modules/query_gamedig.sh b/lgsm/modules/query_gamedig.sh
index f370fae97..d8c3c6a7f 100644
--- a/lgsm/modules/query_gamedig.sh
+++ b/lgsm/modules/query_gamedig.sh
@@ -42,9 +42,7 @@ if [ "$(command -v "${gamedigbinary}" 2> /dev/null)" ] && [ "$(command -v jq 2>
fi
# numplayers.
- if [ "${querytype}" == "minecraft" ]; then
- gdplayers=$(echo "${gamedigraw}" | jq -re '.players | length-1')
- elif [ "${querytype}" == "teamspeak3" ]; then
+ if [ "${querytype}" == "teamspeak3" ]; then
gdplayers=$(echo "${gamedigraw}" | jq -re '.raw.virtualserver_clientsonline')
else
gdplayers=$(echo "${gamedigraw}" | jq -re '.players | length')
From d0fbe4a7b63b6547c098272235188a7d4c935832 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 Jan 2025 17:21:11 +0000
Subject: [PATCH 105/154] feat: replace mailx with s-nail for email alerts
---
lgsm/modules/check_deps.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index 95d4a6ad0..dcc9c890c 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -114,13 +114,13 @@ fn_deps_email() {
elif [ -d /etc/sendmail ]; then
array_deps_required+=(sendmail)
elif [ "$(command -v yum 2> /dev/null)" ] || [ "$(command -v dnf 2> /dev/null)" ]; then
- array_deps_required+=(mailx postfix)
+ array_deps_required+=(s-nail postfix)
elif [ "$(command -v apt 2> /dev/null)" ]; then
array_deps_required+=(mailutils postfix)
fi
else
if [ "$(command -v yum 2> /dev/null)" ] || [ "$(command -v dnf 2> /dev/null)" ]; then
- array_deps_required+=(mailx postfix)
+ array_deps_required+=(s-nail postfix)
elif [ "$(command -v apt 2> /dev/null)" ]; then
array_deps_required+=(mailutils postfix)
fi
From 06166045bc01515ce743426dca630df3f8e0ac71 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 Jan 2025 23:28:35 +0000
Subject: [PATCH 106/154] fix(sof2): correct config location (#4739)
---
lgsm/config-default/config-lgsm/sof2server/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/sof2server/_default.cfg b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
index e00afefa1..140773daf 100644
--- a/lgsm/config-default/config-lgsm/sof2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/sof2server/_default.cfg
@@ -142,7 +142,7 @@ glibc="2.1"
# Edit with care
## Game Server Directories
-systemdir="${serverfiles}/main"
+systemdir="${serverfiles}/base"
executabledir="${serverfiles}"
executable="./sof2ded"
servercfgdir="${systemdir}"
From f49c2b3aa7a1ff3bb8b057d83412ae27f7177411 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 5 Jan 2025 23:38:17 +0000
Subject: [PATCH 107/154] feat(bfv): add query for bfv (#4740)
* fix quake2 and formatted
* correct bfv ports
* update bf config info
* remove curl
* tidy
* fix jc2mp query name
---
.../config-lgsm/bfvserver/_default.cfg | 4 ++--
.../config-lgsm/jc2server/_default.cfg | 2 +-
lgsm/modules/info_game.sh | 6 ++++--
lgsm/modules/query_gsquery.py | 14 +++++++-------
4 files changed, 14 insertions(+), 12 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
index 53aa36054..2e8aed8f1 100644
--- a/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/bfvserver/_default.cfg
@@ -123,8 +123,8 @@ stopmode="3"
# 3: gamedig
# 4: gsquery
# 5: tcp
-querymode="1"
-querytype=""
+querymode="3"
+querytype="protocol-gamespy2"
## Console type
consoleverbose="yes"
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index 5a82bbad9..21932e205 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -134,7 +134,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="jc2m"
+querytype="jc2mp"
## Console type
consoleverbose="yes"
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index 3bae60f0b..dcdbe2f2b 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -959,13 +959,14 @@ fn_info_game_bf1942() {
fn_info_game_keyvalue_pairs_space "configip" "game.serverIP"
fn_info_game_keyvalue_pairs_space "maxplayers" "game.serverMaxPlayers"
fn_info_game_keyvalue_pairs_space "port" "game.serverPort"
+ fn_info_game_keyvalue_pairs_space "queryport" "game.gameSpyPort"
fn_info_game_keyvalue_pairs_space "servername" "game.serverName"
fn_info_game_keyvalue_pairs_space "serverpassword" "game.serverPassword"
fi
configip="${configip:-"0.0.0.0"}"
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
- queryport="22000"
+ queryport="${queryport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
}
@@ -982,11 +983,12 @@ fn_info_game_bfv() {
fn_info_game_keyvalue_pairs_space "port" "game.serverPort"
fn_info_game_keyvalue_pairs_space "servername" "game.serverName"
fn_info_game_keyvalue_pairs_space "serverpassword" "game.serverPassword"
+ fn_info_game_keyvalue_pairs_space "queryport" "game.gameSpyPort"
fi
configip="${configip:-"0.0.0.0"}"
maxplayers="${maxplayers:-"0"}"
port="${port:-"0"}"
- queryport="22000"
+ queryport="${queryport:-"0"}"
servername="${servername:-"NOT SET"}"
serverpassword="${serverpassword:-"NOT SET"}"
}
diff --git a/lgsm/modules/query_gsquery.py b/lgsm/modules/query_gsquery.py
index ecdf8165c..245a606e1 100644
--- a/lgsm/modules/query_gsquery.py
+++ b/lgsm/modules/query_gsquery.py
@@ -11,7 +11,7 @@ import socket
import sys
engine_types = ('protocol-valve', 'protocol-quake2', 'protocol-quake3', 'protocol-gamespy1',
- 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2m', 'mumbleping', 'soldat', 'teeworlds')
+ 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2mp', 'mumbleping', 'soldat', 'teeworlds')
class gsquery:
@@ -22,11 +22,11 @@ class gsquery:
idtech2query = ('protocol-quake2', 'idtech2', 'quake', 'iw2.0')
idtech3query = ('protocol-quake3', 'iw3.0', 'ioquake3', 'qfusion')
minecraftquery = ('minecraft', 'lwjgl2')
- minecraftbequery = ('minecraftbe',)
- jc2mquery = ('jc2m',)
- mumblequery = ('mumbleping',)
- soldatquery = ('soldat',)
- twquery = ('teeworlds',)
+ minecraftbequery = ('minecraftbe')
+ jc2mpquery = ('jc2mp')
+ mumblequery = ('mumbleping')
+ soldatquery = ('soldat')
+ twquery = ('teeworlds')
unrealquery = ('protocol-gamespy1', 'unreal')
unreal2query = ('protocol-unreal2', 'unreal2')
unreal3query = ('ut3', 'unreal3')
@@ -40,7 +40,7 @@ class gsquery:
self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
elif self.argument.engine in self.idtech3query:
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
- elif self.argument.engine in self.jc2mquery:
+ elif self.argument.engine in self.jc2mpquery:
self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
elif self.argument.engine in self.minecraftquery:
self.query_prompt_string = b'\xFE\xFD\x09\x3d\x54\x1f\x93'
From 181cd50e02e0fd6214d88ec6050f68fb9035c741 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 7 Jan 2025 18:15:22 +0000
Subject: [PATCH 108/154] fix: broken download url for name-left.csv
name-right.csv
---
lgsm/modules/info_stats.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/info_stats.sh b/lgsm/modules/info_stats.sh
index b995d0e3b..c8a96552a 100644
--- a/lgsm/modules/info_stats.sh
+++ b/lgsm/modules/info_stats.sh
@@ -23,10 +23,10 @@ fi
if [ ! -f "${datadir}/uuid-${selfname}.txt" ] || [ ! -f "${datadir}/uuid-install.txt" ]; then
# download dictionary words
if [ ! -f "${datadir}/name-left.csv" ]; then
- fn_fetch_file_github "${datadir}" "name-left.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
+ fn_fetch_file_github "lgsm/data" "name-left.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
fi
if [ ! -f "${datadir}/name-right.csv" ]; then
- fn_fetch_file_github "${datadir}" "name-right.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
+ fn_fetch_file_github "lgsm/data" "name-right.csv" "${datadir}" "nochmodx" "norun" "forcedl" "nohash"
fi
# generate instance uuid
From d900a62c7370d5a1125210c1d71352609dbadf57 Mon Sep 17 00:00:00 2001
From: Zechiax <106590288+Zechiax@users.noreply.github.com>
Date: Sun, 5 Jan 2025 00:33:30 +0100
Subject: [PATCH 109/154] fix(papermc): update API URL to prevent update
failures (#4728)
---
lgsm/modules/update_pmc.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index b3c7d0dc2..ff48d385c 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -33,7 +33,7 @@ fn_update_localbuild() {
fn_update_remotebuild() {
# Get remote build info.
- apiurl="https://papermc.io/api/v2/projects"
+ apiurl="https://api.papermc.io/v2/projects"
# Get list of projects.
remotebuildresponse=$(curl -s "${apiurl}")
# Get list of Minecraft versions for project.
From d24ea7420f870809f0dedeea6b36fd6bbd9e72e4 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 8 Jan 2025 11:24:02 +0000
Subject: [PATCH 110/154] Release v24.3.4
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index ae6e7ea7a..3f8c801a7 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.3.3"
+modulesversion="v24.3.4"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 96ce50a6d..7e885b662 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.3.3"
+version="v24.3.4"
shortname="core"
gameservername="core"
commandname="CORE"
From 81c4f802863f97cb0008ef993ed27a8f2af4b913 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 8 Jan 2025 18:19:52 +0000
Subject: [PATCH 111/154] feat(squad44): Rename Post Scriptum to Squad 44
(#4737)
---
.../config-lgsm/{psserver => squad44server}/_default.cfg | 0
lgsm/data/debian-10.csv | 2 +-
lgsm/data/debian-11.csv | 2 +-
lgsm/data/debian-12.csv | 2 +-
lgsm/data/debian-13.csv | 2 +-
lgsm/data/debian-9.csv | 2 +-
lgsm/data/serverlist.csv | 2 +-
lgsm/data/ubuntu-16.04.csv | 2 +-
lgsm/data/ubuntu-18.04.csv | 2 +-
lgsm/data/ubuntu-20.04.csv | 2 +-
lgsm/data/ubuntu-22.04.csv | 2 +-
lgsm/data/ubuntu-23.04.csv | 2 +-
lgsm/data/ubuntu-23.10.csv | 2 +-
lgsm/data/ubuntu-24.04.csv | 2 +-
lgsm/modules/check_system_requirements.sh | 2 +-
lgsm/modules/info_game.sh | 2 +-
lgsm/modules/info_messages.sh | 2 +-
17 files changed, 16 insertions(+), 16 deletions(-)
rename lgsm/config-default/config-lgsm/{psserver => squad44server}/_default.cfg (100%)
diff --git a/lgsm/config-default/config-lgsm/psserver/_default.cfg b/lgsm/config-default/config-lgsm/squad44server/_default.cfg
similarity index 100%
rename from lgsm/config-default/config-lgsm/psserver/_default.cfg
rename to lgsm/config-default/config-lgsm/squad44server/_default.cfg
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index 6bfa1dae4..bfbf4dac0 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -81,7 +81,7 @@ opfor
pc
pc2
pmc,openjdk-11-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 5441a69b4..61a20b15f 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-17-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 1c0a39930..5fa249e15 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-17-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
index 5ddb19405..4002eb0e9 100644
--- a/lgsm/data/debian-13.csv
+++ b/lgsm/data/debian-13.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-22-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index 4e54ac241..d00f64969 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-8-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 0f350b55d..d75bee3b5 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -81,7 +81,6 @@ opfor,opforserver,Opposing Force,ubuntu-24.04
pc,pcserver,Project Cars,ubuntu-24.04
pc2,pc2server,Project Cars 2,ubuntu-24.04
pmc,pmcserver,PaperMC,ubuntu-24.04
-ps,psserver,Post Scriptum,ubuntu-24.04
pvkii,pvkiiserver,Pirates Vikings & Knights II,ubuntu-24.04
pvr,pvrserver,Pavlov VR,ubuntu-24.04
pw,pwserver,Palworld,ubuntu-24.04
@@ -108,6 +107,7 @@ sm,smserver,Soulmask,ubuntu-24.04
sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-24.04
sol,solserver,Soldat,ubuntu-24.04
squad,squadserver,Squad,ubuntu-24.04
+squad44,squad44server,Squad 44,ubuntu-24.04
st,stserver,Stationeers,ubuntu-24.04
stn,stnserver,Survive the Nights,ubuntu-24.04
sven,svenserver,Sven Co-op,ubuntu-20.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 51f769c1a..1327946e5 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -83,7 +83,7 @@ opfor
pc
pc2
pmc,openjdk-8-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pz,openjdk-8-jre,rng-tools
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index 7ca2d86c6..d693fba00 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -83,7 +83,7 @@ opfor
pc
pc2
pmc,openjdk-11-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pz,openjdk-11-jre,rng-tools
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index f16d8b3be..193054da8 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-21-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index e84f4dddd..1b8849bba 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-21-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index c0135abd7..2ed8416a2 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-21-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index c0135abd7..2ed8416a2 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-21-jre
-ps,libgconf-2-4
+squad44
pvkii
pvr,libc++1
pw
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index c0135abd7..6414652ec 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -82,7 +82,7 @@ opfor
pc
pc2
pmc,openjdk-21-jre
-ps,libgconf-2-4
+ps
pvkii
pvr,libc++1
pw
diff --git a/lgsm/modules/check_system_requirements.sh b/lgsm/modules/check_system_requirements.sh
index 531695a6e..39cef3a42 100644
--- a/lgsm/modules/check_system_requirements.sh
+++ b/lgsm/modules/check_system_requirements.sh
@@ -39,7 +39,7 @@ elif [ "${shortname}" == "mh" ]; then
ramrequirementgb="4"
elif [ "${shortname}" == "ns2" ] || [ "${shortname}" == "ns2c" ]; then
ramrequirementgb="1"
-elif [ "${shortname}" == "ps" ]; then
+elif [ "${shortname}" == "squad44" ]; then
ramrequirementgb="2"
elif [ "${shortname}" == "pvr" ]; then
ramrequirementgb="1"
diff --git a/lgsm/modules/info_game.sh b/lgsm/modules/info_game.sh
index dcdbe2f2b..2819b65d1 100644
--- a/lgsm/modules/info_game.sh
+++ b/lgsm/modules/info_game.sh
@@ -2406,7 +2406,7 @@ elif [ "${shortname}" == "pc" ]; then
fn_info_game_pc
elif [ "${shortname}" == "pc2" ]; then
fn_info_game_pc2
-elif [ "${shortname}" == "ps" ]; then
+elif [ "${shortname}" == "squad44" ]; then
fn_info_game_ps
elif [ "${shortname}" == "pvr" ]; then
fn_info_game_pvr
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index 09576e861..e47f5dd08 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1858,7 +1858,7 @@ fn_info_messages_select_engine() {
fn_info_messages_pc
elif [ "${shortname}" == "pc2" ]; then
fn_info_messages_pc2
- elif [ "${shortname}" == "ps" ]; then
+ elif [ "${shortname}" == "squad44" ]; then
fn_info_messages_ps
elif [ "${shortname}" == "pvr" ]; then
fn_info_messages_pvr
From 8d17622af3d24bfe120cd8a3296ac7d0908e9a3e Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 8 Jan 2025 18:22:16 +0000
Subject: [PATCH 112/154] feat: add ismygameserver.online links (#4742)
---
lgsm/modules/alert_discord.sh | 97 +++------------------------
lgsm/modules/alert_gotify.sh | 34 ++++++----
lgsm/modules/alert_ifttt.sh | 34 ++++++----
lgsm/modules/alert_pushbullet.sh | 35 +++++-----
lgsm/modules/alert_pushover.sh | 24 +++++--
lgsm/modules/alert_rocketchat.sh | 34 +++++++---
lgsm/modules/alert_slack.sh | 38 ++++++++---
lgsm/modules/alert_telegram.sh | 37 +++++-----
lgsm/modules/check_permissions.sh | 4 +-
lgsm/modules/command_dev_query_raw.sh | 4 ++
lgsm/modules/info_messages.sh | 33 +++++++++
11 files changed, 205 insertions(+), 169 deletions(-)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 93eda8d5b..3b489984d 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -7,7 +7,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsoninfo=$(
+json=$(
cat << EOF
{
"username": "LinuxGSM",
@@ -29,103 +29,32 @@ jsoninfo=$(
"url": "${alerticon}"
},
"fields": [
- {
- "name": "Server Name",
- "value": "${servername}"
- },
- {
- "name": "Information",
- "value": "${alertmessage}"
- },
{
- "name": "Game",
- "value": "${gamename}",
- "inline": true
+ "name": "Server Name",
+ "value": "${servername}"
},
{
- "name": "Server IP",
- "value": "\`${alertip}:${port}\`",
- "inline": true
- },
- {
- "name": "Hostname",
- "value": "${HOSTNAME}",
- "inline": true
+ "name": "Information",
+ "value": "${alertmessage}"
},
- {
- "name": "More info",
- "value": "${alerturl}",
- "inline": true
- },
- {
- "name": "Server Time",
- "value": "$(date)",
- "inline": true
- }
- ],
- "footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "text": "Sent by LinuxGSM ${version}"
- }
- }
- ]
-}
-EOF
-)
-
-jsonnoinfo=$(
- cat << EOF
-{
- "username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "file": "content",
- "embeds": [
- {
- "author": {
- "name": "LinuxGSM Alert",
- "url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
- },
- "title": "${alerttitle}",
- "url": "",
- "description": "",
- "color": "${alertcolourdec}",
- "type": "content",
- "thumbnail": {
- "url": "${alerticon}"
- },
- "fields": [
- {
- "name": "Server Name",
- "value": "${servername}"
- },
- {
- "name": "Information",
- "value": "${alertmessage}"
- },
{
"name": "Game",
"value": "${gamename}",
"inline": true
},
{
- "name": "Server IP",
- "value": "\`${alertip}:${port}\`",
- "inline": true
- },
- {
- "name": "Hostname",
- "value": "${HOSTNAME}",
+ "name": "Server Time",
+ "value": "$(date)",
"inline": true
},
{
- "name": "Server Time",
- "value": "$(date)",
+ "name": "Is my Game Server Online?",
+ "value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
"inline": true
}
],
"footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
"text": "Sent by LinuxGSM ${version}"
}
}
@@ -136,12 +65,6 @@ EOF
fn_print_dots "Sending Discord alert"
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
discordsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${discordwebhook}")
if [ -n "${discordsend}" ]; then
diff --git a/lgsm/modules/alert_gotify.sh b/lgsm/modules/alert_gotify.sh
index dcb438fb2..2f627c774 100644
--- a/lgsm/modules/alert_gotify.sh
+++ b/lgsm/modules/alert_gotify.sh
@@ -7,32 +7,38 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsoninfo=$(
+json=$(
cat << EOF
{
"title": "${alerttitle}",
- "message": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}\n\nServer Time\n$(date)",
- "priority": 5
-}
+ "message": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\n
EOF
)
-jsonnoinfo=$(
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+Is my Game Server Online?\nhttps://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}\n\n
+EOF
+ )
+fi
+
+if [ -n "${alerturl}" ]; then
+ json+=$(
+ cat << EOF
+More info\n${alerturl}\n\n
+EOF
+ )
+fi
+
+json+=$(
cat << EOF
-{
- "title": "${alerttitle}",
- "message": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nServer Time\n$(date)",
+Server Time\n$(date)",
"priority": 5
}
EOF
)
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
fn_print_dots "Sending Gotify alert"
gotifysend=$(curl --connect-timeout 3 -sSL "${gotifywebhook}/message"?token="${gotifytoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)")
diff --git a/lgsm/modules/alert_ifttt.sh b/lgsm/modules/alert_ifttt.sh
index ca1c005d0..aaae3b4e8 100644
--- a/lgsm/modules/alert_ifttt.sh
+++ b/lgsm/modules/alert_ifttt.sh
@@ -7,32 +7,38 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsoninfo=$(
+json=$(
cat << EOF
{
"value1": "${selfname}",
"value2": "${alerttitle}",
- "value3": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}\n\nServer Time\n$(date)"
-}
+ "value3": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\n
EOF
)
-jsonnoinfo=$(
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+Is my Game Server Online?\nhttps://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}\n\n
+EOF
+ )
+fi
+
+if [ -n "${alerturl}" ]; then
+ json+=$(
+ cat << EOF
+More info\n${alerturl}\n\n
+EOF
+ )
+fi
+
+json+=$(
cat << EOF
-{
- "value1": "${selfname}",
- "value2": "${alerttitle}",
- "value3": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nServer Time\n$(date)"
+Server Time\n$(date)"
}
EOF
)
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
fn_print_dots "Sending IFTTT alert"
iftttsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://maker.ifttt.com/trigger/${iftttevent}/with/key/${ifttttoken}" | grep "Bad Request")
diff --git a/lgsm/modules/alert_pushbullet.sh b/lgsm/modules/alert_pushbullet.sh
index 4b96a1f9f..abdfa0bb2 100644
--- a/lgsm/modules/alert_pushbullet.sh
+++ b/lgsm/modules/alert_pushbullet.sh
@@ -7,34 +7,39 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsoninfo=$(
+json=$(
cat << EOF
{
"channel_tag": "${channeltag}",
"type": "note",
"title": "${alerttitle}",
- "body": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}\n\nServer Time\n$(date)"
-}
+ "body": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\n
EOF
)
-jsonnoinfo=$(
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+Is my Game Server Online?\nhttps://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}\n\n
+EOF
+ )
+fi
+
+if [ -n "${alerturl}" ]; then
+ json+=$(
+ cat << EOF
+More info\n${alerturl}\n\n
+EOF
+ )
+fi
+
+json+=$(
cat << EOF
-{
- "channel_tag": "${channeltag}",
- "type": "note",
- "title": "${alerttitle}",
- "body": "Server Name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nServer Time\n$(date)"
+Server Time\n$(date)"
}
EOF
)
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
fn_print_dots "Sending Pushbullet alert"
pushbulletsend=$(curl --connect-timeout 3 -sSL -H "Access-Token: ${pushbullettoken}" -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "https://api.pushbullet.com/v2/pushes" | grep "error_code")
diff --git a/lgsm/modules/alert_pushover.sh b/lgsm/modules/alert_pushover.sh
index dc488026a..8dc0ce2dc 100644
--- a/lgsm/modules/alert_pushover.sh
+++ b/lgsm/modules/alert_pushover.sh
@@ -22,12 +22,28 @@ else
alertpriority="0"
fi
-if [ -z "${alerturl}" ]; then
- pushoversend=$(curl --connect-timeout 3 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alerttitle}" -F message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
Server Time
$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
-else
- pushoversend=$(curl --connect-timeout 3 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alerttitle}" -F message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
More info
${alerturl}
Server Time
$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
+message=" Server name
${servername}
Information
${alertmessage}
Game
${gamename}
Server IP
${alertip}:${port}
Hostname
${HOSTNAME}
"
+
+if [ -n "${querytype}" ]; then
+ message+="Is my Game Server Online?
Check here
"
+fi
+
+if [ -n "${alerturl}" ]; then
+ message+="More info
${alerturl}
"
fi
+message+="Server Time
$(date)"
+
+pushoversend=$(curl --connect-timeout 3 -sS \
+ -F token="${pushovertoken}" \
+ -F user="${pushoveruserkey}" \
+ -F html="1" \
+ -F sound="${alertsound}" \
+ -F priority="${alertpriority}" \
+ -F title="${alerttitle}" \
+ -F message="${message}" \
+ "https://api.pushover.net/1/messages.json" | grep errors)
+
if [ -n "${pushoversend}" ]; then
fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"
fn_script_log_fail "Sending Pushover alert: ${pushoversend}"
diff --git a/lgsm/modules/alert_rocketchat.sh b/lgsm/modules/alert_rocketchat.sh
index bff2c6a0b..35bcf4928 100644
--- a/lgsm/modules/alert_rocketchat.sh
+++ b/lgsm/modules/alert_rocketchat.sh
@@ -7,7 +7,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsoninfo=$(
+json=$(
cat << EOF
{
"alias": "LinuxGSM",
@@ -64,7 +64,31 @@ jsoninfo=$(
EOF
)
-jsonnoinfo=$(
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+ {
+ "short": false,
+ "title": "Is my Game Server Online?",
+ "value": ""
+ },
+EOF
+ )
+fi
+
+if [ -n "${alerturl}" ]; then
+ json+=$(
+ cat << EOF
+ {
+ "short": false,
+ "title": "More info",
+ "value": "${alerturl}"
+ },
+EOF
+ )
+fi
+
+json+=$(
cat << EOF
{
"alias": "LinuxGSM",
@@ -116,12 +140,6 @@ jsonnoinfo=$(
EOF
)
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
fn_print_dots "Sending Rocketchat alert"
rocketchatsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${rocketchatwebhook}")
diff --git a/lgsm/modules/alert_slack.sh b/lgsm/modules/alert_slack.sh
index 58dc54772..0a1e9015e 100644
--- a/lgsm/modules/alert_slack.sh
+++ b/lgsm/modules/alert_slack.sh
@@ -7,7 +7,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsonnoinfo=$(
+json=$(
cat << EOF
{
"attachments": [
@@ -87,7 +87,35 @@ jsonnoinfo=$(
EOF
)
-jsoninfo=$(
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "*Is my Game Server Online?*\n"
+ }
+ },
+EOF
+ )
+fi
+
+if [ -n "${alerturl}" ]; then
+ json+=$(
+ cat << EOF
+ {
+ "type": "section",
+ "text": {
+ "type": "mrkdwn",
+ "text": "*More info*\n<${alerturl}|${alerturl}>"
+ }
+ },
+EOF
+ )
+fi
+
+json+=$(
cat << EOF
{
"attachments": [
@@ -174,12 +202,6 @@ jsoninfo=$(
EOF
)
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
fn_print_dots "Sending Slack alert"
slacksend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" "${slackwebhook}")
diff --git a/lgsm/modules/alert_telegram.sh b/lgsm/modules/alert_telegram.sh
index 2e719dba7..d7c9b8447 100644
--- a/lgsm/modules/alert_telegram.sh
+++ b/lgsm/modules/alert_telegram.sh
@@ -7,38 +7,41 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-jsoninfo=$(
+json=$(
cat << EOF
{
"chat_id": "${telegramchatid}",
"message_thread_id": "${telegramthreadid}",
"parse_mode": "HTML",
"disable_notification": "${telegramdisablenotification}",
- "text": "${alerttitle}\n\nServer name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}\n\nServer Time\n$(date)",
- "disable_web_page_preview": "yes"
-}
+ "text": "${alerttitle}\n\nServer name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\n
EOF
)
-jsonnoinfo=$(
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+Is my Game Server Online?\nCheck here\n\n
+EOF
+ )
+fi
+
+if [ -n "${alerturl}" ]; then
+ json+=$(
+ cat << EOF
+More info\n${alerturl}\n\n
+EOF
+ )
+fi
+
+json+=$(
cat << EOF
-{
- "chat_id": "${telegramchatid}",
- "message_thread_id": "${telegramthreadid}",
- "parse_mode": "HTML",
- "disable_notification": "${telegramdisablenotification}",
- "text": "${alerttitle}\n\nServer name\n${servername}\n\nInformation\n${alertmessage}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nServer Time\n$(date)",
+Server Time\n$(date)",
"disable_web_page_preview": "yes"
}
EOF
)
-if [ -z "${alerturl}" ]; then
- json="${jsonnoinfo}"
-else
- json="${jsoninfo}"
-fi
-
fn_print_dots "Sending Telegram alert"
telegramsend=$(curl --connect-timeout 3 -sSL -H "Content-Type: application/json" -X POST -d "$(echo -n "${json}" | jq -c .)" ${curlcustomstring} "https://${telegramapi}/bot${telegramtoken}/sendMessage" | grep "error_code")
diff --git a/lgsm/modules/check_permissions.sh b/lgsm/modules/check_permissions.sh
index 9ed1bb65e..4004732f2 100644
--- a/lgsm/modules/check_permissions.sh
+++ b/lgsm/modules/check_permissions.sh
@@ -63,8 +63,8 @@ fn_check_permissions() {
findnotexecutable="$(find "${modulesdir}" -type f -not -executable)"
findnotexecutablewc="$(find "${modulesdir}" -type f -not -executable | wc -l)"
if [ "${findnotexecutablewc}" -ne "0" ]; then
- fn_print_fail_nl "Permissions issues found"
- fn_script_log_fail "Permissions issues found"
+ fn_print_error_nl "Permissions issues found"
+ fn_script_log_error "Permissions issues found"
fn_print_information_nl "The following files are not executable:"
fn_script_log_info "The following files are not executable:"
{
diff --git a/lgsm/modules/command_dev_query_raw.sh b/lgsm/modules/command_dev_query_raw.sh
index ebe54c40f..a27850df8 100644
--- a/lgsm/modules/command_dev_query_raw.sh
+++ b/lgsm/modules/command_dev_query_raw.sh
@@ -208,6 +208,10 @@ echo -e ""
echo -e "PORT: ${port}"
echo -e "QUERY PORT: ${queryport}"
echo -e ""
+echo -e "${lightgreen}Is My Game Server Online?${default}"
+fn_messages_separator
+echo -e "Game server status: https://ismygameserver.online/${imgsoquerytype}/${queryip}:${queryport}"
+echo -e ""
echo -e "${lightgreen}Gamedig Raw Output${default}"
fn_messages_separator
echo -e ""
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index e47f5dd08..fd6ebc447 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -7,6 +7,29 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
+# Converts querytype to imgsoquerytype for use with ismygameserver.online urls
+if [ -n "${querytype}" ]; then
+ if [ "${querytype}" == "protocol-valve" ]; then
+ imgsoquerytype="valve"
+ elif [ "${querytype}" == "protocol-gamespy1" ]; then
+ imgsoquerytype="gamespy"
+ elif [ "${querytype}" == "protocol-gamespy2" ]; then
+ imgsoquerytype="gamespy"
+ elif [ "${querytype}" == "protocol-gamespy3" ]; then
+ imgsoquerytype="gamespy"
+ elif [ "${querytype}" == "protocol-quake1" ]; then
+ imgsoquerytype="quake"
+ elif [ "${querytype}" == "protocol-quake2" ]; then
+ imgsoquerytype="quake"
+ elif [ "${querytype}" == "protocol-quake3" ]; then
+ imgsoquerytype="quake"
+ elif [ "${querytype}" == "protocol-unreal2" ]; then
+ imgsoquerytype="unrealtournament2004"
+ else
+ imgsoquerytype="${querytype}"
+ fi
+fi
+
# Removes the passwords form all but details.
fn_info_messages_password_strip() {
if [ "${commandname}" != "DETAILS" ]; then
@@ -66,6 +89,11 @@ fn_info_messages_head() {
echo -e "Hostname"
echo -e "${HOSTNAME}"
echo -e ""
+ if [ -n "${querytype}" ]; then
+ echo -e "Is my Game Server Online?"
+ echo -e "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}"
+ echo -e ""
+ fi
echo -e "Server Time"
echo -e "$(date)"
}
@@ -503,6 +531,11 @@ fn_info_messages_gameserver() {
else
echo -e "${lightblue}Status:\t${green}STARTED${default}"
fi
+
+ # ismygameserver.online
+ if [ -n "${querytype}" ]; then
+ echo -e "${lightblue}Query Check:\t${default}https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}"
+ fi
} | column -s $'\t' -t
echo -e ""
}
From 7a0fc70d81db2f8e859b636982cd7390746073ce Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Wed, 8 Jan 2025 19:12:05 +0000
Subject: [PATCH 113/154] fix: add missing imgso filter if not required in
discord alert
---
lgsm/modules/alert_discord.sh | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 3b489984d..2b50f0c01 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -46,12 +46,25 @@ json=$(
"name": "Server Time",
"value": "$(date)",
"inline": true
- },
+ }
+EOF
+)
+
+if [ -n "${querytype}" ]; then
+ json+=$(
+ cat << EOF
+ ,
{
"name": "Is my Game Server Online?",
"value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
"inline": true
}
+EOF
+ )
+fi
+
+json+=$(
+ cat << EOF
],
"footer": {
"icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
From 579d54bc407bd85592fbd46651e734e21f7ead04 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 20 Jan 2025 00:23:22 +0000
Subject: [PATCH 114/154] fix permissions
---
.github/workflows/lock.yml | 2 ++
1 file changed, 2 insertions(+)
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
index ce00b840b..8a08284a4 100644
--- a/.github/workflows/lock.yml
+++ b/.github/workflows/lock.yml
@@ -1,11 +1,13 @@
name: Lock Threads
on:
+ workflow_dispatch:
schedule:
- cron: "0 0 * * 1"
permissions:
issues: write
pull-requests: write
+ discussions: write
jobs:
lock:
From 47e95d13dde288f5a970101a0e1863f96b354ca7 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Feb 2025 13:43:05 +0000
Subject: [PATCH 115/154] Release v25.1.0
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 76a02ba0e..3d5837750 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v24.3.4"
+modulesversion="v25.1.0"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 65ecef509..8b655c44c 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v24.3.4"
+version="v25.1.0"
shortname="core"
gameservername="core"
commandname="CORE"
From 114486107e4b3787a2dfb3624c038af23905cb55 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Feb 2025 14:38:11 +0000
Subject: [PATCH 116/154] fix: remove libtinfo5:i386 from Ubuntu 24.04
---
lgsm/data/ubuntu-24.04.csv | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index 6414652ec..78ab08f3c 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -11,7 +11,7 @@ av
bb
bb2,libcurl4-gnutls-dev:i386
bd
-bf1942,libncurses5:i386,libtinfo5:i386
+bf1942,libncurses5:i386
bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
@@ -31,7 +31,7 @@ cs
cs2
cscz
csgo
-css,libtinfo5:i386
+css
ct
dab
dayz
@@ -48,7 +48,7 @@ etl
ets2
fctr
fof
-gmod,libtinfo5:i386
+gmod
hcu
hl2dm
hldm
@@ -72,7 +72,7 @@ mohaa,libstdc++5:i386
mta,libncursesw5,libxml2-utils
nd
nec
-nmrih,libtinfo5:i386
+nmrih
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
@@ -104,7 +104,7 @@ scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils
sf
-sfc,libtinfo5:i386
+sfc
sm,telnet,expect
sof2
sol
@@ -135,5 +135,5 @@ wf
wmc,openjdk-21-jre
wurm,xvfb
xnt
-zmr,libtinfo5:i386
-zps,libtinfo5:i386
+zmr
+zps
From e4a7772d8267164cbeeb4b4f98fbb626b83d2341 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Feb 2025 14:39:03 +0000
Subject: [PATCH 117/154] fix: remove libncurses5:i386 from Ubuntu 24.04
---
lgsm/data/ubuntu-24.04.csv | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index 78ab08f3c..d9312a7b3 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -11,9 +11,9 @@ av
bb
bb2,libcurl4-gnutls-dev:i386
bd
-bf1942,libncurses5:i386
-bfv,libncurses5:i386,libstdc++5:i386
-bmdm,libncurses5:i386
+bf1942
+bfv,libstdc++5:i386
+bmdm
bo
bs
bt,libicu-dev,dos2unix,libxml2-utils
From bf850bf0c7a12f12c5e26070b758f7f51e2ec42f Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Feb 2025 14:42:47 +0000
Subject: [PATCH 118/154] fix: update aspnetcore-runtime to verion 8 on Ubunut
24.04
---
lgsm/data/ubuntu-24.04.csv | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index d9312a7b3..aacb0ca7d 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -69,13 +69,13 @@ mc,openjdk-21-jre
mcb
mh
mohaa,libstdc++5:i386
-mta,libncursesw5,libxml2-utils
+mta,libxml2-utils
nd
nec
nmrih
ns
-ns2,speex,libtbb2
-ns2c,speex:i386,libtbb2
+ns2,speex
+ns2c,speex:i386
ohd
onset,libmariadb-dev
opfor
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,aspnetcore-runtime-8.0
vpmc,openjdk-21-jre
vs
wet
From 6d48fbf41a495e868656a4c14c2eb851bf223145 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Feb 2025 14:44:26 +0000
Subject: [PATCH 119/154] Release v.25.1.1
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 3d5837750..4c72f127b 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v25.1.0"
+modulesversion="v25.1.1"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 8b655c44c..9d689231c 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v25.1.0"
+version="v25.1.1"
shortname="core"
gameservername="core"
commandname="CORE"
From 5a667ae8b8cffecae84faea4b3900f0798c17722 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 00:37:34 +0000
Subject: [PATCH 120/154] fix: put bfv and bf1942 back to ubuntu 22.04
---
lgsm/data/serverlist.csv | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index d75bee3b5..68f25de70 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -10,8 +10,8 @@ av,avserver,Avorion,ubuntu-24.04
bb,bbserver,BrainBread,ubuntu-24.04
bb2,bb2server,BrainBread 2,ubuntu-24.04
bd,bdserver,Base Defense,ubuntu-24.04
-bf1942,bf1942server,Battlefield 1942,ubuntu-24.04
-bfv,bfvserver,Battlefield: Vietnam,ubuntu-24.04
+bf1942,bf1942server,Battlefield 1942,ubuntu-22.04
+bfv,bfvserver,Battlefield: Vietnam,ubuntu-22.04
bmdm,bmdmserver,Black Mesa: Deathmatch,ubuntu-24.04
bo,boserver,Ballistic Overkill,ubuntu-24.04
bs,bsserver,Blade Symphony,ubuntu-24.04
From 69735b3cb33bd21231d977f3d19eb500dd49b4fa Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 00:38:14 +0000
Subject: [PATCH 121/154] Release v25.1.2
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 4c72f127b..6a0764166 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v25.1.1"
+modulesversion="v25.1.2"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 9d689231c..41862a8d8 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v25.1.1"
+version="v25.1.2"
shortname="core"
gameservername="core"
commandname="CORE"
From f28becd8ca573ab637bf27e56b64fb48ac033e6a Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 17:08:47 +0000
Subject: [PATCH 122/154] revert: mapfile to declare
---
lgsm/modules/command_backup.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/command_backup.sh b/lgsm/modules/command_backup.sh
index 010c60577..f427e8b00 100644
--- a/lgsm/modules/command_backup.sh
+++ b/lgsm/modules/command_backup.sh
@@ -190,7 +190,7 @@ fn_backup_prune() {
fn_backup_relpath() {
# Written by CedarLUG as a "realpath --relative-to" alternative in bash.
# Populate an array of tokens initialized from the rootdir components.
- mapfile -t rdirtoks < <(readlink -f "${rootdir}" | sed "s/\// /g")
+ declare -a rdirtoks=($(readlink -f "${rootdir}" | sed "s/\// /g"))
if [ ${#rdirtoks[@]} -eq 0 ]; then
fn_print_fail_nl "Problem assessing rootdir during relative path assessment"
fn_script_log_fail "Problem assessing rootdir during relative path assessment: ${rootdir}"
@@ -198,7 +198,7 @@ fn_backup_relpath() {
fi
# Populate an array of tokens initialized from the backupdir components.
- mapfile -t bdirtoks < <(readlink -f "${backupdir}" | sed "s/\// /g")
+ declare -a bdirtoks=($(readlink -f "${backupdir}" | sed "s/\// /g"))
if [ ${#bdirtoks[@]} -eq 0 ]; then
fn_print_fail_nl "Problem assessing backupdir during relative path assessment"
fn_script_log_fail "Problem assessing backupdir during relative path assessment: ${rootdir}"
From 421971c73f3c10617d4ae3f4c2dd949b4bfc4564 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 17:17:21 +0000
Subject: [PATCH 123/154] fix: minor messaging bug
---
lgsm/modules/update_jk2.sh | 2 +-
lgsm/modules/update_mc.sh | 2 +-
lgsm/modules/update_mcb.sh | 2 +-
lgsm/modules/update_mta.sh | 2 +-
lgsm/modules/update_pmc.sh | 2 +-
lgsm/modules/update_ts3.sh | 2 +-
lgsm/modules/update_ut99.sh | 2 +-
lgsm/modules/update_vints.sh | 2 +-
lgsm/modules/update_xnt.sh | 2 +-
9 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/lgsm/modules/update_jk2.sh b/lgsm/modules/update_jk2.sh
index 20350aec6..af2709ec6 100644
--- a/lgsm/modules/update_jk2.sh
+++ b/lgsm/modules/update_jk2.sh
@@ -154,7 +154,7 @@ remotelocation="github.com"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_mc.sh b/lgsm/modules/update_mc.sh
index 8cac4067b..897b0df27 100644
--- a/lgsm/modules/update_mc.sh
+++ b/lgsm/modules/update_mc.sh
@@ -169,7 +169,7 @@ remotelocation="mojang.com"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index 8b66aa006..29faf3363 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -177,7 +177,7 @@ remotelocation="minecraft.net"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_mta.sh b/lgsm/modules/update_mta.sh
index e677723a0..0946cf642 100644
--- a/lgsm/modules/update_mta.sh
+++ b/lgsm/modules/update_mta.sh
@@ -162,7 +162,7 @@ remotelocation="linux.mtasa.com"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index 053d1f9ae..0a883c150 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -179,7 +179,7 @@ remotelocation="papermc.io"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_ts3.sh b/lgsm/modules/update_ts3.sh
index 8bbbbc2b2..abc9a60c8 100644
--- a/lgsm/modules/update_ts3.sh
+++ b/lgsm/modules/update_ts3.sh
@@ -173,7 +173,7 @@ remotelocation="teamspeak.com"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_ut99.sh b/lgsm/modules/update_ut99.sh
index f83208e6f..e8d4a2848 100644
--- a/lgsm/modules/update_ut99.sh
+++ b/lgsm/modules/update_ut99.sh
@@ -155,7 +155,7 @@ remotelocation="github.com"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_vints.sh b/lgsm/modules/update_vints.sh
index 1e17cac7d..e683156db 100644
--- a/lgsm/modules/update_vints.sh
+++ b/lgsm/modules/update_vints.sh
@@ -162,7 +162,7 @@ remotelocation="vintagestory.at"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index 31c5c1249..05b73d33c 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -162,7 +162,7 @@ remotelocation="github.com"
if [ "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
- fn_script_log_fatal "jq is not installed"
+ fn_script_log_fail "jq is not installed"
core_exit.sh
fi
From 5e5cd30a1017e19e47787a24371b4fcc44e3c849 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 17:33:42 +0000
Subject: [PATCH 124/154] Release v25.1.3
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 4c72f127b..af80ba05f 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v25.1.1"
+modulesversion="v25.1.3"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 9d689231c..d73ee7094 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v25.1.1"
+version="v25.1.3"
shortname="core"
gameservername="core"
commandname="CORE"
From cd208f6f07972cc37c4649b030cea1848609f713 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 19:15:12 +0000
Subject: [PATCH 125/154] fix: resolve jq dependency issue
fix
---
lgsm/modules/core_modules.sh | 2 +-
lgsm/modules/update_jk2.sh | 2 +-
lgsm/modules/update_mc.sh | 2 +-
lgsm/modules/update_mcb.sh | 2 +-
lgsm/modules/update_mta.sh | 2 +-
lgsm/modules/update_pmc.sh | 2 +-
lgsm/modules/update_ts3.sh | 2 +-
lgsm/modules/update_ut99.sh | 2 +-
lgsm/modules/update_vints.sh | 2 +-
lgsm/modules/update_xnt.sh | 2 +-
linuxgsm.sh | 2 +-
11 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index af80ba05f..92aab59fd 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v25.1.3"
+modulesversion="v25.1.4"
# Core
diff --git a/lgsm/modules/update_jk2.sh b/lgsm/modules/update_jk2.sh
index af2709ec6..098154499 100644
--- a/lgsm/modules/update_jk2.sh
+++ b/lgsm/modules/update_jk2.sh
@@ -152,7 +152,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="github.com"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_mc.sh b/lgsm/modules/update_mc.sh
index 897b0df27..0ce4e2e39 100644
--- a/lgsm/modules/update_mc.sh
+++ b/lgsm/modules/update_mc.sh
@@ -167,7 +167,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="mojang.com"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index 29faf3363..8154b813e 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -175,7 +175,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="minecraft.net"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_mta.sh b/lgsm/modules/update_mta.sh
index 0946cf642..c7214665d 100644
--- a/lgsm/modules/update_mta.sh
+++ b/lgsm/modules/update_mta.sh
@@ -160,7 +160,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="linux.mtasa.com"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index 0a883c150..9c288827e 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -177,7 +177,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="papermc.io"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_ts3.sh b/lgsm/modules/update_ts3.sh
index abc9a60c8..92f9d3489 100644
--- a/lgsm/modules/update_ts3.sh
+++ b/lgsm/modules/update_ts3.sh
@@ -171,7 +171,7 @@ fi
# The location where the builds are checked and downloaded.
remotelocation="teamspeak.com"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_ut99.sh b/lgsm/modules/update_ut99.sh
index e8d4a2848..5f30bdc23 100644
--- a/lgsm/modules/update_ut99.sh
+++ b/lgsm/modules/update_ut99.sh
@@ -153,7 +153,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="github.com"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_vints.sh b/lgsm/modules/update_vints.sh
index e683156db..d468d58d4 100644
--- a/lgsm/modules/update_vints.sh
+++ b/lgsm/modules/update_vints.sh
@@ -160,7 +160,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="vintagestory.at"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index 05b73d33c..7014ab1a9 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -160,7 +160,7 @@ fn_update_compare() {
# The location where the builds are checked and downloaded.
remotelocation="github.com"
-if [ "$(command -v jq 2> /dev/null)" ]; then
+if [ ! "$(command -v jq 2> /dev/null)" ]; then
fn_print_fail_nl "jq is not installed"
fn_script_log_fail "jq is not installed"
core_exit.sh
diff --git a/linuxgsm.sh b/linuxgsm.sh
index d73ee7094..2b464f99a 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v25.1.3"
+version="v25.1.4"
shortname="core"
gameservername="core"
commandname="CORE"
From 9edc3ca206e270bd48e3502c8241994b022f87c7 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Feb 2025 00:37:34 +0000
Subject: [PATCH 126/154] fix: put bfv and bf1942 back to ubuntu 22.04
---
lgsm/data/serverlist.csv | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index d75bee3b5..68f25de70 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -10,8 +10,8 @@ av,avserver,Avorion,ubuntu-24.04
bb,bbserver,BrainBread,ubuntu-24.04
bb2,bb2server,BrainBread 2,ubuntu-24.04
bd,bdserver,Base Defense,ubuntu-24.04
-bf1942,bf1942server,Battlefield 1942,ubuntu-24.04
-bfv,bfvserver,Battlefield: Vietnam,ubuntu-24.04
+bf1942,bf1942server,Battlefield 1942,ubuntu-22.04
+bfv,bfvserver,Battlefield: Vietnam,ubuntu-22.04
bmdm,bmdmserver,Black Mesa: Deathmatch,ubuntu-24.04
bo,boserver,Ballistic Overkill,ubuntu-24.04
bs,bsserver,Blade Symphony,ubuntu-24.04
From eabf26fcaa7dc8b535772f9361e94d75a4466138 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 10 Feb 2025 21:17:25 +0000
Subject: [PATCH 127/154] Release v25.1.5
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 92aab59fd..51f691d5c 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v25.1.4"
+modulesversion="v25.1.5"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index 2b464f99a..af7c182dd 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v25.1.4"
+version="v25.1.5"
shortname="core"
gameservername="core"
commandname="CORE"
From 9be745f115af223243d65284b2fc0eb4cff04cd8 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 24 Feb 2025 21:57:19 +0000
Subject: [PATCH 128/154] fix(hz): update config location
---
lgsm/config-default/config-lgsm/hzserver/_default.cfg | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/hzserver/_default.cfg b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
index b610594e7..98b6dda1e 100644
--- a/lgsm/config-default/config-lgsm/hzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
@@ -12,7 +12,6 @@
ip="0.0.0.0"
port="7777"
queryport="27015"
-servername="LinuxGSM"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-log -port=${port} -queryport=${queryport} -steamservername=${servername}"
@@ -157,8 +156,8 @@ glibc="2.17"
systemdir="${serverfiles}/TSSGame"
executabledir="${systemdir}/Binaries/Linux"
executable="./TSSGameServer-Linux-Shipping"
-servercfgdir="${systemdir}/Saved/Config/LinuxServer"
-servercfg="GameUserSettings.ini"
+servercfgdir="${systemdir}"
+servercfg="GameServerSettings.ini"
servercfgdefault="GameUserSettings.ini"
servercfgfullpath="${servercfgdir}/${servercfg}"
From 64980655f48af7b22cfa4fc42d10a737d9be211d Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 24 Feb 2025 22:28:37 +0000
Subject: [PATCH 129/154] feat: bypass termbin if site is down
---
lgsm/modules/command_postdetails.sh | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/lgsm/modules/command_postdetails.sh b/lgsm/modules/command_postdetails.sh
index 61d537440..7f5f67304 100644
--- a/lgsm/modules/command_postdetails.sh
+++ b/lgsm/modules/command_postdetails.sh
@@ -58,18 +58,27 @@ else
fi
fn_print_dots "termbin.com"
-link=$(cat "${postdetailslog}" | nc termbin.com 9999 | tr -d '\n\0')
-fn_print_ok_nl "termbin.com for 30D"
-fn_script_log_pass "termbin.com for 30D"
-pdurl="${link}"
+link=$(cat "${postdetailslog}" | {
+ nc -w 3 termbin.com 9999
+ echo $? > /tmp/nc_exit_status
+} | tr -d '\n\0')
+nc_exit_status=$(cat /tmp/nc_exit_status)
+if [ "${nc_exit_status}" -ne 0 ]; then
+ fn_print_error_nl "Failed to post to termbin.com"
+ fn_script_log_error "Failed to post to termbin.com"
+else
+ fn_print_ok_nl "termbin.com for 30D"
+ fn_script_log_pass "termbin.com for 30D"
+ pdurl="${link}"
-if [ "${firstcommandname}" == "POST-DETAILS" ]; then
- echo -e ""
- echo -e "Please share the following url for support: "
- echo -e "${italic}${pdurl}${default}"
+ if [ "${firstcommandname}" == "POST-DETAILS" ]; then
+ echo -e ""
+ echo -e "Please share the following url for support: "
+ echo -e "${italic}${pdurl}${default}"
+ fi
+ fn_script_log_info "${pdurl}"
+ alerturl="${pdurl}"
fi
-fn_script_log_info "${pdurl}"
-alerturl="${pdurl}"
if [ -z "${exitbypass}" ]; then
core_exit.sh
From 3c313de2ba2bfbc87235cf96938680ad22cdd0b2 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Fri, 7 Mar 2025 16:25:33 +0000
Subject: [PATCH 130/154] fix(armar): update dependency name to libcurl4t64 for
Ubuntu 24.04
---
lgsm/data/ubuntu-24.04.csv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index aacb0ca7d..dccd1f753 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -5,7 +5,7 @@ ahl
ahl2
ark
arma3
-armar,libcurl4
+armar,libcurl4t64
ats
av
bb
From b2eb64532b4458c9f59fd880f9872ad79b7ecfab Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Fri, 7 Mar 2025 16:27:57 +0000
Subject: [PATCH 131/154] fix(alert): Restore more info in alert
---
lgsm/modules/alert_discord.sh | 113 +++++++++++++++++++---------------
1 file changed, 63 insertions(+), 50 deletions(-)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 2b50f0c01..1ed3da441 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -10,68 +10,81 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(
cat << EOF
{
- "username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "file": "content",
- "embeds": [
- {
- "author": {
- "name": "LinuxGSM Alert",
- "url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
- },
- "title": "${alerttitle}",
- "url": "",
- "description": "",
- "color": "${alertcolourdec}",
- "type": "content",
- "thumbnail": {
- "url": "${alerticon}"
- },
- "fields": [
- {
- "name": "Server Name",
- "value": "${servername}"
- },
- {
- "name": "Information",
- "value": "${alertmessage}"
- },
- {
- "name": "Game",
- "value": "${gamename}",
- "inline": true
- },
- {
- "name": "Server Time",
- "value": "$(date)",
- "inline": true
- }
+ "username": "LinuxGSM",
+ "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "file": "content",
+ "embeds": [
+ {
+ "author": {
+ "name": "LinuxGSM Alert",
+ "url": "",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
+ },
+ "title": "${alerttitle}",
+ "url": "",
+ "description": "",
+ "color": "${alertcolourdec}",
+ "type": "content",
+ "thumbnail": {
+ "url": "${alerticon}"
+ },
+ "fields": [
+ {
+ "name": "Server Name",
+ "value": "${servername}"
+ },
+ {
+ "name": "Information",
+ "value": "${alertmessage}"
+ },
+ {
+ "name": "Game",
+ "value": "${gamename}",
+ "inline": true
+ },
+ {
+ "name": "Server Time",
+ "value": "$(date)",
+ "inline": true
+ }
EOF
)
if [ -n "${querytype}" ]; then
json+=$(
cat << EOF
- ,
- {
- "name": "Is my Game Server Online?",
- "value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
- "inline": true
- }
+ ,
+ {
+ "name": "Is my Game Server Online?",
+ "value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
+ "inline": true
+ }
+EOF
+ )
+fi
+
+if [ -n "{alerturl}" ]; then
+ json+=$(
+ cat << EOF
+ ,
+ {
+ "name": "More info",
+ "value": "${alerturl}",
+ "inline": true
+ }
EOF
)
fi
json+=$(
cat << EOF
- ],
- "footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "text": "Sent by LinuxGSM ${version}"
- }
- }
- ]
+ ],
+ "footer": {
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "text": "Sent by LinuxGSM ${version}"
+ }
+ }
+ ]
}
EOF
)
From 7e937133f14d54ef72df76f4ee69483dfb748dd2 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Mar 2025 21:46:33 +0000
Subject: [PATCH 132/154] fix(tf): change queryport to udp
---
lgsm/modules/info_messages.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index fd6ebc447..4f1f00268 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1658,7 +1658,7 @@ fn_info_messages_tf() {
{
fn_port "header"
fn_port "Game" port udp
- fn_port "Query" queryport tcp
+ fn_port "Query" queryport udp
fn_port "Beacon" beaconport udp
fn_port "Shutdown" shutdownport tcp
} | column -s $'\t' -t
From b133c444caf73405efa9c6f949c76d92774d6890 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Mar 2025 21:49:47 +0000
Subject: [PATCH 133/154] fix(tf): update anticheat to UseEAC
---
lgsm/config-default/config-lgsm/tfserver/_default.cfg | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/tfserver/_default.cfg b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
index fbce96a44..53fde059d 100644
--- a/lgsm/config-default/config-lgsm/tfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
@@ -33,7 +33,7 @@ servertags="LinuxGSM"
steamsocket="0" # Use Steam Socket. 0 = off; 1 = on. Use Steam Servers for network penetration. Enable this if you don't have a public IP but you want to allow players from outside your network to join your server. If disabled, only you and other players on your LAN can join. If you have a public IP, you do not need to enable this.
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="ProjectWar_Start?DedicatedServer?MaxPlayers=${maxplayers} -server -game -log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -BeaconPort=${beaconport} -ShutDownServicePort=${shutdownport} -ConfigServerName='${selfname}' -OutIPAddress=${publicip} -ServerTags='${servertags}' -UseSteamSocket=${steamsocket} -UserDir='${serverfiles}/${selfname}' -ServerName='${servername}' -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=${maxqueuesize} -QueueValidTime=${queuevalidtime} -QueueThreshold=${maxplayers} -ServerFightModeType=${gamemode} -IsCanSelfDamage=${damageself} -IsCanFriendDamage=${damageallies} -SaveWorldInterval=${saveinterval} -GMOverlapRatio=2 -GreenHand=${greenhand} -SensitiveWords=${allowsensitivewords} -UseACE=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'"
+startparameters="ProjectWar_Start?DedicatedServer?MaxPlayers=${maxplayers} -server -game -log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -BeaconPort=${beaconport} -ShutDownServicePort=${shutdownport} -ConfigServerName='${selfname}' -OutIPAddress=${publicip} -ServerTags='${servertags}' -UseSteamSocket=${steamsocket} -UserDir='${serverfiles}/${selfname}' -ServerName='${servername}' -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=${maxqueuesize} -QueueValidTime=${queuevalidtime} -QueueThreshold=${maxplayers} -ServerFightModeType=${gamemode} -IsCanSelfDamage=${damageself} -IsCanFriendDamage=${damageallies} -SaveWorldInterval=${saveinterval} -GMOverlapRatio=2 -GreenHand=${greenhand} -SensitiveWords=${allowsensitivewords} -UseEAC=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'"
#### LinuxGSM Settings ####
From 916e9f5e91e27503bb053b456c8958a2448fe8f6 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 8 Mar 2025 21:54:56 +0000
Subject: [PATCH 134/154] fix: remove Precision Alignment from mods list
---
lgsm/modules/mods_list.sh | 1 -
1 file changed, 1 deletion(-)
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index d6622d1b2..f6f8301bd 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -189,7 +189,6 @@ mod_info_spinnertool=(MOD "spinnertool" "Spinner Tool" "https://github.com/dvdvi
mod_info_surfacefrictiontool=(MOD "surfacefrictiontool" "Surface Friction Tool" "https://github.com/dvdvideo1234/surfacefrictiontool/archive/master.zip" "surfacefrictiontool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/SurfaceFrictionTool" "Controls the surface friction of a prop")
mod_info_magneticdipole=(MOD "magneticdipole" "Magnetic Dipole" "https://github.com/dvdvideo1234/magneticdipole/archive/master.zip" "magneticdipole-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/MagneticDipole" "Magnet entity that runs forces on its poles. Supports wire")
mod_info_environmentorganizer=(MOD "environmentorganizer" "Environment Organizer" "https://github.com/dvdvideo1234/environmentorganizer/archive/master.zip" "environmentorganizer-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/EnvironmentOrganizer" "Installs routines designed for server settings adjustment")
-mod_info_precision_alignment=(MOD "precision-alignment" "Precision Alignment" "https://github.com/Mista-Tea/precision-alignment/archive/master.zip" "precision-alignment-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/precision-alignment" "Creates precise constraints and aligments")
mod_info_improved_stacker=(MOD "improved-stacker" "Improved Stacker" "https://github.com/Mista-Tea/improved-stacker/archive/master.zip" "improved-stacker-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-stacker" "Stacks entities in the direction chosen")
mod_info_improved_weight=(MOD "improved-weight" "Improved Weight" "https://github.com/Mista-Tea/improved-weight/archive/master.zip" "improved-weight-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-weight" "Weight tool but with more features")
mod_info_improved_antinoclip=(MOD "improved-antinoclip" "Improved Antinoclip" "https://github.com/Mista-Tea/improved-antinoclip/archive/master.zip" "improved-antinoclip-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-antinoclip" "Controls clipping trough an object")
From d56742bee857023cc8c11da86c4dc62a0da3c8b5 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Mar 2025 16:42:10 +0000
Subject: [PATCH 135/154] fix(monitor): will now restart instead of update if
restart requested
---
lgsm/modules/command_monitor.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index 7feb05455..5fa3c3000 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -167,7 +167,7 @@ fn_monitor_check_update_source() {
fn_script_log_info "Checking update: ${selfname} has requested an update and needs to be restarted"
alert="update-request"
alert.sh
- command_update.sh
+ command_restart.sh
core_exit.sh
fi
fi
From f657ee74052336d59b66746bd2954714326b7dc2 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Mar 2025 22:26:12 +0000
Subject: [PATCH 136/154] fix: dependencies not being removed if not required
---
lgsm/modules/check_deps.sh | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index dcc9c890c..8cbdf626c 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -251,12 +251,15 @@ fn_deps_detector() {
if [ "${deptocheck}" == "libsdl2-2.0-0:i386" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/libsdl2-2.0-0:i386/}")
steamcmdstatus=1
+ return
elif [ "${deptocheck}" == "steamcmd" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
+ return
elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE '[^deb]+non-free([^-]|$)' /etc/apt/sources.list; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
+ return
# Java: Added for users using Oracle JRE to bypass check.
elif [[ ${deptocheck} == "openjdk"* ]] || [[ ${deptocheck} == "java"* ]]; then
# Is java already installed?
From 71d551e29130c5923a505cc1f54fa32fe9bf5705 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Mar 2025 22:50:41 +0000
Subject: [PATCH 137/154] fix(vints): update dependency requirement
dotnet-runtime-7.0
---
lgsm/data/almalinux-8.csv | 2 +-
lgsm/data/almalinux-9.csv | 2 +-
lgsm/data/centos-7.csv | 2 +-
lgsm/data/centos-8.csv | 2 +-
lgsm/data/centos-9.csv | 2 +-
lgsm/data/debian-10.csv | 2 +-
lgsm/data/debian-11.csv | 2 +-
lgsm/data/debian-12.csv | 2 +-
lgsm/data/debian-13.csv | 2 +-
lgsm/data/debian-9.csv | 2 +-
lgsm/data/rhel-7.csv | 2 +-
lgsm/data/rhel-8.csv | 2 +-
lgsm/data/rhel-9.csv | 2 +-
lgsm/data/rocky-8.csv | 2 +-
lgsm/data/rocky-9.csv | 2 +-
lgsm/data/ubuntu-16.04.csv | 2 +-
lgsm/data/ubuntu-18.04.csv | 2 +-
lgsm/data/ubuntu-20.04.csv | 2 +-
lgsm/data/ubuntu-22.04.csv | 2 +-
lgsm/data/ubuntu-23.04.csv | 2 +-
lgsm/data/ubuntu-23.10.csv | 2 +-
lgsm/data/ubuntu-24.04.csv | 2 +-
lgsm/modules/check_deps.sh | 6 +++---
23 files changed, 25 insertions(+), 25 deletions(-)
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index d4d2456bd..08d91f8fc 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 7dae6338e..a16722c2f 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index 266b358ba..7b467fa00 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-11-openjdk
vs
wet
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index bd5b72c33..4b9fd2133 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-17-openjdk
vs
wet
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index 893f3698c..c6ff3a272 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-17-openjdk
vs
wet
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index bfbf4dac0..74d82e158 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 61a20b15f..33b7deaf9 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 5fa249e15..06fd9e52c 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-17-jre
vs
wet
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
index 4002eb0e9..7d775040e 100644
--- a/lgsm/data/debian-13.csv
+++ b/lgsm/data/debian-13.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index d00f64969..02acceacd 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-8-jre
vs
wet
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 7800136bb..90c9df07e 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-11-openjdk
vs
wet
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index f8bb1d492..0298bd0b0 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 7dae6338e..a16722c2f 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index f8bb1d492..0298bd0b0 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 7dae6338e..a16722c2f 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 1327946e5..436bdecb8 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-8-jre
vs
wet
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index d693fba00..3b24ff37f 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 193054da8..f19436d6a 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 1b8849bba..f8a48ccce 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 2ed8416a2..c14964d2d 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 2ed8416a2..c14964d2d 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index dccd1f753..bd220a501 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-8.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index 8cbdf626c..7145eff0a 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -9,8 +9,8 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_install_dotnet_repo() {
if [ "${distroid}" == "ubuntu" ]; then
- # if package aspnetcore-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
- if ! apt-cache show aspnetcore-runtime-7.0 > /dev/null 2>&1; then
+ # if package dotnet-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
+ if ! apt-cache show dotnet-runtime-7.0 > /dev/null 2>&1; then
fn_fetch_file "https://packages.microsoft.com/config/ubuntu/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
sudo dpkg -i /tmp/packages-microsoft-prod.deb
fi
@@ -282,7 +282,7 @@ fn_deps_detector() {
monoinstalled=false
fi
# .NET Core: A .NET Core repo needs to be installed.
- elif [ "${deptocheck}" == "aspnetcore-runtime-7.0" ]; then
+ elif [ "${deptocheck}" == "dotnet-runtime-7.0" ]; then
# .NET is not installed.
if [ -n "${dotnetversion}" ]; then
depstatus=0
From 1719101444e18adff331e5343308d695ff3dcc65 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Mar 2025 23:07:38 +0000
Subject: [PATCH 138/154] fix: install microsoft repo dotnet-7.0 not available
in standard repos
---
lgsm/modules/check_deps.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index 7145eff0a..5667876e5 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -284,7 +284,7 @@ fn_deps_detector() {
# .NET Core: A .NET Core repo needs to be installed.
elif [ "${deptocheck}" == "dotnet-runtime-7.0" ]; then
# .NET is not installed.
- if [ -n "${dotnetversion}" ]; then
+ if dotnet --list-runtimes | grep -q "Microsoft.NETCore.App 7.0"; then
depstatus=0
dotnetinstalled=true
else
From d56a95ad9ba03e5cf462f1dd5530997c1c1cb1c9 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sun, 9 Mar 2025 23:20:35 +0000
Subject: [PATCH 139/154] fix(vints): roll back to Ubuntu 22.04 docker
---
lgsm/data/serverlist.csv | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 68f25de70..3b8121a26 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -126,7 +126,7 @@ ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-24.04
ut3,ut3server,Unreal Tournament 3,ubuntu-24.04
ut99,ut99server,Unreal Tournament 99,ubuntu-24.04
vh,vhserver,Valheim,ubuntu-24.04
-vints,vintsserver,Vintage Story,ubuntu-24.04
+vints,vintsserver,Vintage Story,ubuntu-22.04
vpmc,vpmcserver,Velocity Proxy MC,ubuntu-24.04
vs,vsserver,Vampire Slayer,ubuntu-24.04
wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-24.04
From d0e8127fcf48647bfb6331e2cbccc2ba8b43270e Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 10 Mar 2025 09:44:14 +0000
Subject: [PATCH 140/154] feat(eco): add usertoken parameter
---
lgsm/config-default/config-lgsm/ecoserver/_default.cfg | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
index c08f37072..0c18318e9 100644
--- a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
@@ -8,8 +8,11 @@
#### Game Server Settings ####
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+usertoken=""
+
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-nogui"
+startparameters="-nogui -userToken=${usertoken}"
#### LinuxGSM Settings ####
From c87f48f5ec3df0eea5a40fa62c4938707a87b19d Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Mon, 10 Mar 2025 10:06:25 +0000
Subject: [PATCH 141/154] fix(jc2): update query name to jc2m
---
lgsm/config-default/config-lgsm/jc2server/_default.cfg | 2 +-
lgsm/modules/query_gsquery.py | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index 21932e205..5a82bbad9 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -134,7 +134,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="jc2mp"
+querytype="jc2m"
## Console type
consoleverbose="yes"
diff --git a/lgsm/modules/query_gsquery.py b/lgsm/modules/query_gsquery.py
index 245a606e1..4dbde90dd 100644
--- a/lgsm/modules/query_gsquery.py
+++ b/lgsm/modules/query_gsquery.py
@@ -11,7 +11,7 @@ import socket
import sys
engine_types = ('protocol-valve', 'protocol-quake2', 'protocol-quake3', 'protocol-gamespy1',
- 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2mp', 'mumbleping', 'soldat', 'teeworlds')
+ 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2m', 'mumbleping', 'soldat', 'teeworlds')
class gsquery:
@@ -23,7 +23,7 @@ class gsquery:
idtech3query = ('protocol-quake3', 'iw3.0', 'ioquake3', 'qfusion')
minecraftquery = ('minecraft', 'lwjgl2')
minecraftbequery = ('minecraftbe')
- jc2mpquery = ('jc2mp')
+ jc2mquery = ('jc2m')
mumblequery = ('mumbleping')
soldatquery = ('soldat')
twquery = ('teeworlds')
@@ -40,7 +40,7 @@ class gsquery:
self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
elif self.argument.engine in self.idtech3query:
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
- elif self.argument.engine in self.jc2mpquery:
+ elif self.argument.engine in self.jc2mquery:
self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
elif self.argument.engine in self.minecraftquery:
self.query_prompt_string = b'\xFE\xFD\x09\x3d\x54\x1f\x93'
From 3cd3009adf2fb35c01a9ba567115008cab30bb9e Mon Sep 17 00:00:00 2001
From: Justus557 <59891919+FeneralGeldmarschall@users.noreply.github.com>
Date: Sun, 15 Jun 2025 22:53:17 +0200
Subject: [PATCH 142/154] fix(backup): add -h flag to backup tar command so it
follows symlinks (#4780)
---
lgsm/modules/command_backup.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/command_backup.sh b/lgsm/modules/command_backup.sh
index f427e8b00..2c8f4bcda 100644
--- a/lgsm/modules/command_backup.sh
+++ b/lgsm/modules/command_backup.sh
@@ -126,7 +126,7 @@ fn_backup_compression() {
core_exit.sh
fi
- tar --use-compress-program=pigz -cf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" --exclude "${tmpdir}" ./.
+ tar --use-compress-program=pigz -hcf "${backupdir}/${backupname}.tar.gz" -C "${rootdir}" --exclude "${excludedir}" --exclude "${lockdir}" --exclude "${tmpdir}" ./.
exitcode=$?
if [ "${exitcode}" -ne 0 ]; then
fn_print_fail_eol
From 63d0f8159927c88d91124ccb03f6c0efabffe337 Mon Sep 17 00:00:00 2001
From: FlaminSarge
Date: Sun, 15 Jun 2025 13:54:23 -0700
Subject: [PATCH 143/154] docs(tf2/hl2dm): Add note about
unrestricted_maxplayers param (#4783)
---
lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg | 2 ++
lgsm/config-default/config-lgsm/tf2server/_default.cfg | 2 ++
2 files changed, 4 insertions(+)
diff --git a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
index c429a6c8e..7ce4dd073 100644
--- a/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hl2dmserver/_default.cfg
@@ -9,6 +9,8 @@
#### Game Server Settings ####
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+# Note that for HL2DM, maxplayers > 33 must be specified like so:
+# maxplayers="101 -unrestricted_maxplayers"
ip="0.0.0.0"
port="27015"
clientport="27005"
diff --git a/lgsm/config-default/config-lgsm/tf2server/_default.cfg b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
index 600249013..74fd359ab 100644
--- a/lgsm/config-default/config-lgsm/tf2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tf2server/_default.cfg
@@ -9,6 +9,8 @@
#### Game Server Settings ####
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+# Note that for TF2, maxplayers > 33 must be specified like so:
+# maxplayers="101 -unrestricted_maxplayers"
ip="0.0.0.0"
port="27015"
clientport="27005"
From 783db0a175f70bbcf39785eb7e5852fd5c36938b Mon Sep 17 00:00:00 2001
From: Stephan Schaffner
Date: Sun, 15 Jun 2025 23:19:07 +0200
Subject: [PATCH 144/154] fix(alert): resolve more info missing from discord
alert (#4771)
* Fixing missing more Info
* minor bug
---------
Co-authored-by: Hornochs
Co-authored-by: Daniel Gibbs
---
lgsm/modules/alert_discord.sh | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 1ed3da441..1440b6a96 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -46,6 +46,11 @@ json=$(
"name": "Server Time",
"value": "$(date)",
"inline": true
+ },
+ {
+ "name": "More info",
+ "value": "${alerturl}",
+ "inline": true
}
EOF
)
@@ -63,7 +68,7 @@ EOF
)
fi
-if [ -n "{alerturl}" ]; then
+if [ -n "${alerturl}" ]; then
json+=$(
cat << EOF
,
From dffed7b29897044b7121f503a3e08ce15ee2e524 Mon Sep 17 00:00:00 2001
From: Awesomerly
Date: Sun, 15 Jun 2025 17:20:19 -0400
Subject: [PATCH 145/154] feat(mods): update sourcemod to 1.12 (#4767)
---
lgsm/modules/mods_list.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index f6f8301bd..89412e65d 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -61,7 +61,7 @@ metamodsourcelatestfile=$(wget "${metamodsourcescrapeurl}" -q -O -)
metamodsourcedownloadurl="https://www.metamodsource.net/latest.php?os=linux&version=${metamodsourceversion}"
metamodsourceurl="${metamodsourcedownloadurl}"
# Sourcemod
-sourcemodversion="1.11"
+sourcemodversion="1.12"
sourcemodscrapeurl="https://sm.alliedmods.net/smdrop/${sourcemodversion}/sourcemod-latest-linux"
sourcemodlatestfile=$(wget "${sourcemodscrapeurl}" -q -O -)
sourcemoddownloadurl="https://www.sourcemod.net/latest.php?os=linux&version=${sourcemodversion}"
From 233ea15e00efce9cebb874c975fa75c31c761d14 Mon Sep 17 00:00:00 2001
From: Christian
Date: Tue, 17 Jun 2025 23:23:57 +0200
Subject: [PATCH 146/154] fix(mcb): change updater to use the new api url
(#4790)
---------
Co-authored-by: Daniel Gibbs
---
.../config-lgsm/ecoserver/_default.cfg | 5 +-
.../config-lgsm/hzserver/_default.cfg | 5 +-
.../config-lgsm/jc2server/_default.cfg | 2 +-
.../config-lgsm/tfserver/_default.cfg | 2 +-
lgsm/data/almalinux-8.csv | 2 +-
lgsm/data/almalinux-9.csv | 2 +-
lgsm/data/centos-7.csv | 2 +-
lgsm/data/centos-8.csv | 2 +-
lgsm/data/centos-9.csv | 2 +-
lgsm/data/debian-10.csv | 2 +-
lgsm/data/debian-11.csv | 2 +-
lgsm/data/debian-12.csv | 2 +-
lgsm/data/debian-13.csv | 2 +-
lgsm/data/debian-9.csv | 2 +-
lgsm/data/rhel-7.csv | 2 +-
lgsm/data/rhel-8.csv | 2 +-
lgsm/data/rhel-9.csv | 2 +-
lgsm/data/rocky-8.csv | 2 +-
lgsm/data/rocky-9.csv | 2 +-
lgsm/data/serverlist.csv | 2 +-
lgsm/data/ubuntu-16.04.csv | 2 +-
lgsm/data/ubuntu-18.04.csv | 2 +-
lgsm/data/ubuntu-20.04.csv | 2 +-
lgsm/data/ubuntu-22.04.csv | 2 +-
lgsm/data/ubuntu-23.04.csv | 2 +-
lgsm/data/ubuntu-23.10.csv | 2 +-
lgsm/data/ubuntu-24.04.csv | 4 +-
lgsm/modules/alert_discord.sh | 113 ++++++++++--------
lgsm/modules/check_deps.sh | 11 +-
lgsm/modules/command_monitor.sh | 2 +-
lgsm/modules/command_postdetails.sh | 29 +++--
lgsm/modules/core_steamcmd.sh | 2 +-
lgsm/modules/info_messages.sh | 2 +-
lgsm/modules/mods_list.sh | 1 -
lgsm/modules/query_gsquery.py | 6 +-
lgsm/modules/update_fctr.sh | 2 +-
lgsm/modules/update_jk2.sh | 2 +-
lgsm/modules/update_mc.sh | 2 +-
lgsm/modules/update_mcb.sh | 19 +--
lgsm/modules/update_mta.sh | 2 +-
lgsm/modules/update_pmc.sh | 2 +-
lgsm/modules/update_ts3.sh | 2 +-
lgsm/modules/update_ut99.sh | 2 +-
lgsm/modules/update_vints.sh | 2 +-
lgsm/modules/update_xnt.sh | 2 +-
45 files changed, 147 insertions(+), 118 deletions(-)
diff --git a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
index c08f37072..0c18318e9 100644
--- a/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/ecoserver/_default.cfg
@@ -8,8 +8,11 @@
#### Game Server Settings ####
+## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
+usertoken=""
+
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="-nogui"
+startparameters="-nogui -userToken=${usertoken}"
#### LinuxGSM Settings ####
diff --git a/lgsm/config-default/config-lgsm/hzserver/_default.cfg b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
index b610594e7..98b6dda1e 100644
--- a/lgsm/config-default/config-lgsm/hzserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/hzserver/_default.cfg
@@ -12,7 +12,6 @@
ip="0.0.0.0"
port="7777"
queryport="27015"
-servername="LinuxGSM"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-log -port=${port} -queryport=${queryport} -steamservername=${servername}"
@@ -157,8 +156,8 @@ glibc="2.17"
systemdir="${serverfiles}/TSSGame"
executabledir="${systemdir}/Binaries/Linux"
executable="./TSSGameServer-Linux-Shipping"
-servercfgdir="${systemdir}/Saved/Config/LinuxServer"
-servercfg="GameUserSettings.ini"
+servercfgdir="${systemdir}"
+servercfg="GameServerSettings.ini"
servercfgdefault="GameUserSettings.ini"
servercfgfullpath="${servercfgdir}/${servercfg}"
diff --git a/lgsm/config-default/config-lgsm/jc2server/_default.cfg b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
index 21932e205..5a82bbad9 100644
--- a/lgsm/config-default/config-lgsm/jc2server/_default.cfg
+++ b/lgsm/config-default/config-lgsm/jc2server/_default.cfg
@@ -134,7 +134,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
-querytype="jc2mp"
+querytype="jc2m"
## Console type
consoleverbose="yes"
diff --git a/lgsm/config-default/config-lgsm/tfserver/_default.cfg b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
index fbce96a44..53fde059d 100644
--- a/lgsm/config-default/config-lgsm/tfserver/_default.cfg
+++ b/lgsm/config-default/config-lgsm/tfserver/_default.cfg
@@ -33,7 +33,7 @@ servertags="LinuxGSM"
steamsocket="0" # Use Steam Socket. 0 = off; 1 = on. Use Steam Servers for network penetration. Enable this if you don't have a public IP but you want to allow players from outside your network to join your server. If disabled, only you and other players on your LAN can join. If you have a public IP, you do not need to enable this.
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
-startparameters="ProjectWar_Start?DedicatedServer?MaxPlayers=${maxplayers} -server -game -log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -BeaconPort=${beaconport} -ShutDownServicePort=${shutdownport} -ConfigServerName='${selfname}' -OutIPAddress=${publicip} -ServerTags='${servertags}' -UseSteamSocket=${steamsocket} -UserDir='${serverfiles}/${selfname}' -ServerName='${servername}' -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=${maxqueuesize} -QueueValidTime=${queuevalidtime} -QueueThreshold=${maxplayers} -ServerFightModeType=${gamemode} -IsCanSelfDamage=${damageself} -IsCanFriendDamage=${damageallies} -SaveWorldInterval=${saveinterval} -GMOverlapRatio=2 -GreenHand=${greenhand} -SensitiveWords=${allowsensitivewords} -UseACE=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'"
+startparameters="ProjectWar_Start?DedicatedServer?MaxPlayers=${maxplayers} -server -game -log -MultiHome=${ip} -Port=${port} -QueryPort=${queryport} -BeaconPort=${beaconport} -ShutDownServicePort=${shutdownport} -ConfigServerName='${selfname}' -OutIPAddress=${publicip} -ServerTags='${servertags}' -UseSteamSocket=${steamsocket} -UserDir='${serverfiles}/${selfname}' -ServerName='${servername}' -EnableParallelCharacterMovementTickFunction -EnableParallelCharacterTickFunction -UseDynamicPhysicsScene -Game.PhysicsVehicle=false -ansimalloc -Game.MaxFrameRate=35 -MaxQueueSize=${maxqueuesize} -QueueValidTime=${queuevalidtime} -QueueThreshold=${maxplayers} -ServerFightModeType=${gamemode} -IsCanSelfDamage=${damageself} -IsCanFriendDamage=${damageallies} -SaveWorldInterval=${saveinterval} -GMOverlapRatio=2 -GreenHand=${greenhand} -SensitiveWords=${allowsensitivewords} -UseEAC=${anticheat} -ServerAdminAccounts='${serveradmins}' -IsShowGmTitle=${adminlabel} -ServerPassword='${serverpassword}'"
#### LinuxGSM Settings ####
diff --git a/lgsm/data/almalinux-8.csv b/lgsm/data/almalinux-8.csv
index d4d2456bd..08d91f8fc 100644
--- a/lgsm/data/almalinux-8.csv
+++ b/lgsm/data/almalinux-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/almalinux-9.csv b/lgsm/data/almalinux-9.csv
index 7dae6338e..a16722c2f 100644
--- a/lgsm/data/almalinux-9.csv
+++ b/lgsm/data/almalinux-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/centos-7.csv b/lgsm/data/centos-7.csv
index 266b358ba..7b467fa00 100644
--- a/lgsm/data/centos-7.csv
+++ b/lgsm/data/centos-7.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-11-openjdk
vs
wet
diff --git a/lgsm/data/centos-8.csv b/lgsm/data/centos-8.csv
index bd5b72c33..4b9fd2133 100644
--- a/lgsm/data/centos-8.csv
+++ b/lgsm/data/centos-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-17-openjdk
vs
wet
diff --git a/lgsm/data/centos-9.csv b/lgsm/data/centos-9.csv
index 893f3698c..c6ff3a272 100644
--- a/lgsm/data/centos-9.csv
+++ b/lgsm/data/centos-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-17-openjdk
vs
wet
diff --git a/lgsm/data/debian-10.csv b/lgsm/data/debian-10.csv
index bfbf4dac0..74d82e158 100644
--- a/lgsm/data/debian-10.csv
+++ b/lgsm/data/debian-10.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/debian-11.csv b/lgsm/data/debian-11.csv
index 61a20b15f..33b7deaf9 100644
--- a/lgsm/data/debian-11.csv
+++ b/lgsm/data/debian-11.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/debian-12.csv b/lgsm/data/debian-12.csv
index 5fa249e15..06fd9e52c 100644
--- a/lgsm/data/debian-12.csv
+++ b/lgsm/data/debian-12.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-17-jre
vs
wet
diff --git a/lgsm/data/debian-13.csv b/lgsm/data/debian-13.csv
index 4002eb0e9..7d775040e 100644
--- a/lgsm/data/debian-13.csv
+++ b/lgsm/data/debian-13.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/debian-9.csv b/lgsm/data/debian-9.csv
index d00f64969..02acceacd 100644
--- a/lgsm/data/debian-9.csv
+++ b/lgsm/data/debian-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-8-jre
vs
wet
diff --git a/lgsm/data/rhel-7.csv b/lgsm/data/rhel-7.csv
index 7800136bb..90c9df07e 100644
--- a/lgsm/data/rhel-7.csv
+++ b/lgsm/data/rhel-7.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-11-openjdk
vs
wet
diff --git a/lgsm/data/rhel-8.csv b/lgsm/data/rhel-8.csv
index f8bb1d492..0298bd0b0 100644
--- a/lgsm/data/rhel-8.csv
+++ b/lgsm/data/rhel-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/rhel-9.csv b/lgsm/data/rhel-9.csv
index 7dae6338e..a16722c2f 100644
--- a/lgsm/data/rhel-9.csv
+++ b/lgsm/data/rhel-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/rocky-8.csv b/lgsm/data/rocky-8.csv
index f8bb1d492..0298bd0b0 100644
--- a/lgsm/data/rocky-8.csv
+++ b/lgsm/data/rocky-8.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/rocky-9.csv b/lgsm/data/rocky-9.csv
index 7dae6338e..a16722c2f 100644
--- a/lgsm/data/rocky-9.csv
+++ b/lgsm/data/rocky-9.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,glibc-devel,libatomic,pulseaudio-libs-devel
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,java-21-openjdk
vs
wet
diff --git a/lgsm/data/serverlist.csv b/lgsm/data/serverlist.csv
index 68f25de70..3b8121a26 100644
--- a/lgsm/data/serverlist.csv
+++ b/lgsm/data/serverlist.csv
@@ -126,7 +126,7 @@ ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-24.04
ut3,ut3server,Unreal Tournament 3,ubuntu-24.04
ut99,ut99server,Unreal Tournament 99,ubuntu-24.04
vh,vhserver,Valheim,ubuntu-24.04
-vints,vintsserver,Vintage Story,ubuntu-24.04
+vints,vintsserver,Vintage Story,ubuntu-22.04
vpmc,vpmcserver,Velocity Proxy MC,ubuntu-24.04
vs,vsserver,Vampire Slayer,ubuntu-24.04
wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-24.04
diff --git a/lgsm/data/ubuntu-16.04.csv b/lgsm/data/ubuntu-16.04.csv
index 1327946e5..436bdecb8 100644
--- a/lgsm/data/ubuntu-16.04.csv
+++ b/lgsm/data/ubuntu-16.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-8-jre
vs
wet
diff --git a/lgsm/data/ubuntu-18.04.csv b/lgsm/data/ubuntu-18.04.csv
index d693fba00..3b24ff37f 100644
--- a/lgsm/data/ubuntu-18.04.csv
+++ b/lgsm/data/ubuntu-18.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/ubuntu-20.04.csv b/lgsm/data/ubuntu-20.04.csv
index 193054da8..f19436d6a 100644
--- a/lgsm/data/ubuntu-20.04.csv
+++ b/lgsm/data/ubuntu-20.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-11-jre
vs
wet
diff --git a/lgsm/data/ubuntu-22.04.csv b/lgsm/data/ubuntu-22.04.csv
index 1b8849bba..f8a48ccce 100644
--- a/lgsm/data/ubuntu-22.04.csv
+++ b/lgsm/data/ubuntu-22.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/ubuntu-23.04.csv b/lgsm/data/ubuntu-23.04.csv
index 2ed8416a2..c14964d2d 100644
--- a/lgsm/data/ubuntu-23.04.csv
+++ b/lgsm/data/ubuntu-23.04.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/ubuntu-23.10.csv b/lgsm/data/ubuntu-23.10.csv
index 2ed8416a2..c14964d2d 100644
--- a/lgsm/data/ubuntu-23.10.csv
+++ b/lgsm/data/ubuntu-23.10.csv
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-7.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/data/ubuntu-24.04.csv b/lgsm/data/ubuntu-24.04.csv
index aacb0ca7d..bd220a501 100644
--- a/lgsm/data/ubuntu-24.04.csv
+++ b/lgsm/data/ubuntu-24.04.csv
@@ -5,7 +5,7 @@ ahl
ahl2
ark
arma3
-armar,libcurl4
+armar,libcurl4t64
ats
av
bb
@@ -127,7 +127,7 @@ ut2k4
ut3
ut99
vh,libc6-dev,libatomic1,libpulse-dev
-vints,aspnetcore-runtime-8.0
+vints,dotnet-runtime-7.0
vpmc,openjdk-21-jre
vs
wet
diff --git a/lgsm/modules/alert_discord.sh b/lgsm/modules/alert_discord.sh
index 2b50f0c01..1ed3da441 100644
--- a/lgsm/modules/alert_discord.sh
+++ b/lgsm/modules/alert_discord.sh
@@ -10,68 +10,81 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(
cat << EOF
{
- "username": "LinuxGSM",
- "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "file": "content",
- "embeds": [
- {
- "author": {
- "name": "LinuxGSM Alert",
- "url": "",
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
- },
- "title": "${alerttitle}",
- "url": "",
- "description": "",
- "color": "${alertcolourdec}",
- "type": "content",
- "thumbnail": {
- "url": "${alerticon}"
- },
- "fields": [
- {
- "name": "Server Name",
- "value": "${servername}"
- },
- {
- "name": "Information",
- "value": "${alertmessage}"
- },
- {
- "name": "Game",
- "value": "${gamename}",
- "inline": true
- },
- {
- "name": "Server Time",
- "value": "$(date)",
- "inline": true
- }
+ "username": "LinuxGSM",
+ "avatar_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "file": "content",
+ "embeds": [
+ {
+ "author": {
+ "name": "LinuxGSM Alert",
+ "url": "",
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg"
+ },
+ "title": "${alerttitle}",
+ "url": "",
+ "description": "",
+ "color": "${alertcolourdec}",
+ "type": "content",
+ "thumbnail": {
+ "url": "${alerticon}"
+ },
+ "fields": [
+ {
+ "name": "Server Name",
+ "value": "${servername}"
+ },
+ {
+ "name": "Information",
+ "value": "${alertmessage}"
+ },
+ {
+ "name": "Game",
+ "value": "${gamename}",
+ "inline": true
+ },
+ {
+ "name": "Server Time",
+ "value": "$(date)",
+ "inline": true
+ }
EOF
)
if [ -n "${querytype}" ]; then
json+=$(
cat << EOF
- ,
- {
- "name": "Is my Game Server Online?",
- "value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
- "inline": true
- }
+ ,
+ {
+ "name": "Is my Game Server Online?",
+ "value": "https://ismygameserver.online/${imgsoquerytype}/${alertip}:${queryport}",
+ "inline": true
+ }
+EOF
+ )
+fi
+
+if [ -n "{alerturl}" ]; then
+ json+=$(
+ cat << EOF
+ ,
+ {
+ "name": "More info",
+ "value": "${alerturl}",
+ "inline": true
+ }
EOF
)
fi
json+=$(
cat << EOF
- ],
- "footer": {
- "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
- "text": "Sent by LinuxGSM ${version}"
- }
- }
- ]
+ ],
+ "footer": {
+ "icon_url": "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",
+ "text": "Sent by LinuxGSM ${version}"
+ }
+ }
+ ]
}
EOF
)
diff --git a/lgsm/modules/check_deps.sh b/lgsm/modules/check_deps.sh
index dcc9c890c..5667876e5 100644
--- a/lgsm/modules/check_deps.sh
+++ b/lgsm/modules/check_deps.sh
@@ -9,8 +9,8 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_install_dotnet_repo() {
if [ "${distroid}" == "ubuntu" ]; then
- # if package aspnetcore-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
- if ! apt-cache show aspnetcore-runtime-7.0 > /dev/null 2>&1; then
+ # if package dotnet-runtime-7.0 is unavailable in ubuntu repos, add the microsoft repo.
+ if ! apt-cache show dotnet-runtime-7.0 > /dev/null 2>&1; then
fn_fetch_file "https://packages.microsoft.com/config/ubuntu/${distroversion}/packages-microsoft-prod.deb" "" "" "" "/tmp" "packages-microsoft-prod.deb" "" "" "" ""
sudo dpkg -i /tmp/packages-microsoft-prod.deb
fi
@@ -251,12 +251,15 @@ fn_deps_detector() {
if [ "${deptocheck}" == "libsdl2-2.0-0:i386" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/libsdl2-2.0-0:i386/}")
steamcmdstatus=1
+ return
elif [ "${deptocheck}" == "steamcmd" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
+ return
elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE '[^deb]+non-free([^-]|$)' /etc/apt/sources.list; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
+ return
# Java: Added for users using Oracle JRE to bypass check.
elif [[ ${deptocheck} == "openjdk"* ]] || [[ ${deptocheck} == "java"* ]]; then
# Is java already installed?
@@ -279,9 +282,9 @@ fn_deps_detector() {
monoinstalled=false
fi
# .NET Core: A .NET Core repo needs to be installed.
- elif [ "${deptocheck}" == "aspnetcore-runtime-7.0" ]; then
+ elif [ "${deptocheck}" == "dotnet-runtime-7.0" ]; then
# .NET is not installed.
- if [ -n "${dotnetversion}" ]; then
+ if dotnet --list-runtimes | grep -q "Microsoft.NETCore.App 7.0"; then
depstatus=0
dotnetinstalled=true
else
diff --git a/lgsm/modules/command_monitor.sh b/lgsm/modules/command_monitor.sh
index 7feb05455..5fa3c3000 100644
--- a/lgsm/modules/command_monitor.sh
+++ b/lgsm/modules/command_monitor.sh
@@ -167,7 +167,7 @@ fn_monitor_check_update_source() {
fn_script_log_info "Checking update: ${selfname} has requested an update and needs to be restarted"
alert="update-request"
alert.sh
- command_update.sh
+ command_restart.sh
core_exit.sh
fi
fi
diff --git a/lgsm/modules/command_postdetails.sh b/lgsm/modules/command_postdetails.sh
index 61d537440..7f5f67304 100644
--- a/lgsm/modules/command_postdetails.sh
+++ b/lgsm/modules/command_postdetails.sh
@@ -58,18 +58,27 @@ else
fi
fn_print_dots "termbin.com"
-link=$(cat "${postdetailslog}" | nc termbin.com 9999 | tr -d '\n\0')
-fn_print_ok_nl "termbin.com for 30D"
-fn_script_log_pass "termbin.com for 30D"
-pdurl="${link}"
+link=$(cat "${postdetailslog}" | {
+ nc -w 3 termbin.com 9999
+ echo $? > /tmp/nc_exit_status
+} | tr -d '\n\0')
+nc_exit_status=$(cat /tmp/nc_exit_status)
+if [ "${nc_exit_status}" -ne 0 ]; then
+ fn_print_error_nl "Failed to post to termbin.com"
+ fn_script_log_error "Failed to post to termbin.com"
+else
+ fn_print_ok_nl "termbin.com for 30D"
+ fn_script_log_pass "termbin.com for 30D"
+ pdurl="${link}"
-if [ "${firstcommandname}" == "POST-DETAILS" ]; then
- echo -e ""
- echo -e "Please share the following url for support: "
- echo -e "${italic}${pdurl}${default}"
+ if [ "${firstcommandname}" == "POST-DETAILS" ]; then
+ echo -e ""
+ echo -e "Please share the following url for support: "
+ echo -e "${italic}${pdurl}${default}"
+ fi
+ fn_script_log_info "${pdurl}"
+ alerturl="${pdurl}"
fi
-fn_script_log_info "${pdurl}"
-alerturl="${pdurl}"
if [ -z "${exitbypass}" ]; then
core_exit.sh
diff --git a/lgsm/modules/core_steamcmd.sh b/lgsm/modules/core_steamcmd.sh
index dad98a1e2..bf9790132 100644
--- a/lgsm/modules/core_steamcmd.sh
+++ b/lgsm/modules/core_steamcmd.sh
@@ -164,7 +164,7 @@ fn_update_steamcmd_localbuild() {
}
fn_update_steamcmd_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
if [ -d "${steamcmddir}" ]; then
cd "${steamcmddir}" || exit
fi
diff --git a/lgsm/modules/info_messages.sh b/lgsm/modules/info_messages.sh
index fd6ebc447..4f1f00268 100644
--- a/lgsm/modules/info_messages.sh
+++ b/lgsm/modules/info_messages.sh
@@ -1658,7 +1658,7 @@ fn_info_messages_tf() {
{
fn_port "header"
fn_port "Game" port udp
- fn_port "Query" queryport tcp
+ fn_port "Query" queryport udp
fn_port "Beacon" beaconport udp
fn_port "Shutdown" shutdownport tcp
} | column -s $'\t' -t
diff --git a/lgsm/modules/mods_list.sh b/lgsm/modules/mods_list.sh
index d6622d1b2..f6f8301bd 100644
--- a/lgsm/modules/mods_list.sh
+++ b/lgsm/modules/mods_list.sh
@@ -189,7 +189,6 @@ mod_info_spinnertool=(MOD "spinnertool" "Spinner Tool" "https://github.com/dvdvi
mod_info_surfacefrictiontool=(MOD "surfacefrictiontool" "Surface Friction Tool" "https://github.com/dvdvideo1234/surfacefrictiontool/archive/master.zip" "surfacefrictiontool-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/SurfaceFrictionTool" "Controls the surface friction of a prop")
mod_info_magneticdipole=(MOD "magneticdipole" "Magnetic Dipole" "https://github.com/dvdvideo1234/magneticdipole/archive/master.zip" "magneticdipole-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/MagneticDipole" "Magnet entity that runs forces on its poles. Supports wire")
mod_info_environmentorganizer=(MOD "environmentorganizer" "Environment Organizer" "https://github.com/dvdvideo1234/environmentorganizer/archive/master.zip" "environmentorganizer-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/dvdvideo1234/EnvironmentOrganizer" "Installs routines designed for server settings adjustment")
-mod_info_precision_alignment=(MOD "precision-alignment" "Precision Alignment" "https://github.com/Mista-Tea/precision-alignment/archive/master.zip" "precision-alignment-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/precision-alignment" "Creates precise constraints and aligments")
mod_info_improved_stacker=(MOD "improved-stacker" "Improved Stacker" "https://github.com/Mista-Tea/improved-stacker/archive/master.zip" "improved-stacker-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-stacker" "Stacks entities in the direction chosen")
mod_info_improved_weight=(MOD "improved-weight" "Improved Weight" "https://github.com/Mista-Tea/improved-weight/archive/master.zip" "improved-weight-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-weight" "Weight tool but with more features")
mod_info_improved_antinoclip=(MOD "improved-antinoclip" "Improved Antinoclip" "https://github.com/Mista-Tea/improved-antinoclip/archive/master.zip" "improved-antinoclip-master.zip" "0" "LowercaseOn" "${systemdir}/addons" "OVERWRITE" "ENGINES" "Garry's Mod;" "NOTGAMES" "https://github.com/Mista-Tea/improved-antinoclip" "Controls clipping trough an object")
diff --git a/lgsm/modules/query_gsquery.py b/lgsm/modules/query_gsquery.py
index 245a606e1..4dbde90dd 100644
--- a/lgsm/modules/query_gsquery.py
+++ b/lgsm/modules/query_gsquery.py
@@ -11,7 +11,7 @@ import socket
import sys
engine_types = ('protocol-valve', 'protocol-quake2', 'protocol-quake3', 'protocol-gamespy1',
- 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2mp', 'mumbleping', 'soldat', 'teeworlds')
+ 'protocol-unreal2', 'ut3', 'minecraft', 'minecraftbe', 'jc2m', 'mumbleping', 'soldat', 'teeworlds')
class gsquery:
@@ -23,7 +23,7 @@ class gsquery:
idtech3query = ('protocol-quake3', 'iw3.0', 'ioquake3', 'qfusion')
minecraftquery = ('minecraft', 'lwjgl2')
minecraftbequery = ('minecraftbe')
- jc2mpquery = ('jc2mp')
+ jc2mquery = ('jc2m')
mumblequery = ('mumbleping')
soldatquery = ('soldat')
twquery = ('teeworlds')
@@ -40,7 +40,7 @@ class gsquery:
self.query_prompt_string = b'\xff\xff\xff\xffstatus\x00'
elif self.argument.engine in self.idtech3query:
self.query_prompt_string = b'\xff\xff\xff\xffgetstatus'
- elif self.argument.engine in self.jc2mpquery:
+ elif self.argument.engine in self.jc2mquery:
self.query_prompt_string = b'\xFE\xFD\x09\x10\x20\x30\x40'
elif self.argument.engine in self.minecraftquery:
self.query_prompt_string = b'\xFE\xFD\x09\x3d\x54\x1f\x93'
diff --git a/lgsm/modules/update_fctr.sh b/lgsm/modules/update_fctr.sh
index b49386654..3418c7424 100644
--- a/lgsm/modules/update_fctr.sh
+++ b/lgsm/modules/update_fctr.sh
@@ -34,7 +34,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://factorio.com/get-download/${branch}/headless/${factorioarch}"
remotebuildresponse=$(curl -s "${apiurl}")
remotebuildversion=$(echo "${remotebuildresponse}" | grep -o '[0-9]\.[0-9]\{1,\}\.[0-9]\{1,\}' | head -1)
diff --git a/lgsm/modules/update_jk2.sh b/lgsm/modules/update_jk2.sh
index 098154499..5fdd54c65 100644
--- a/lgsm/modules/update_jk2.sh
+++ b/lgsm/modules/update_jk2.sh
@@ -31,7 +31,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://api.github.com/repos/mvdevs/jk2mv/releases/latest"
remotebuildresponse=$(curl -s "${apiurl}")
remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("dedicated.zip")) | .name')
diff --git a/lgsm/modules/update_mc.sh b/lgsm/modules/update_mc.sh
index 0ce4e2e39..a9be77576 100644
--- a/lgsm/modules/update_mc.sh
+++ b/lgsm/modules/update_mc.sh
@@ -34,7 +34,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://launchermeta.mojang.com/mc/game/version_manifest.json"
remotebuildresponse=$(curl -s "${apiurl}")
# Latest release.
diff --git a/lgsm/modules/update_mcb.sh b/lgsm/modules/update_mcb.sh
index 8154b813e..a8616c3b8 100644
--- a/lgsm/modules/update_mcb.sh
+++ b/lgsm/modules/update_mcb.sh
@@ -38,7 +38,7 @@ fn_update_localbuild() {
# Gets local build info.
fn_print_dots "Checking local build: ${remotelocation}"
# Uses log file to get local build.
- localbuild=$(grep Version "${consolelogdir}"/* 2> /dev/null | tail -1 | sed 's/.*Version: //' | tr -d '\000-\011\013-\037')
+ localbuild=$(grep -hoP 'Version:\s*\K[\d.]+' "${consolelogdir}"/* 2> /dev/null | sort -V -r | head -n1)
if [ -z "${localbuild}" ]; then
fn_print_error "Checking local build: ${remotelocation}: missing local build info"
fn_script_log_error "Missing local build info"
@@ -51,15 +51,18 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Random number for userAgent
- randomint=$(tr -dc 0-9 < /dev/urandom 2> /dev/null | head -c 4 | xargs)
- # Get remote build info.
- if [ "${mcversion}" == "latest" ]; then
- remotebuildversion=$(curl -H "Accept-Encoding: identity" -H "Accept-Language: en" -Ls -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.${randomint}.212 Safari/537.36" "https://www.minecraft.net/en-us/download/server/bedrock/" | grep -o 'https://www.minecraft.net/bedrockdedicatedserver/bin-linux/[^"]*' | sed 's/.*\///' | grep -Eo "[.0-9]+[0-9]")
+ # Gets remote build info.
+ apiurl="https://net-secondary.web.minecraft-services.net/api/v1.0/download/links"
+ remotebuildresponse=$(curl -s "${apiurl}" | jq '.result.links[]')
+ # Latest preview.
+ if [ "${mcversion}" == "preview" ]; then
+ remotebuildurl=$(echo "${remotebuildresponse}" | jq -r 'select(.downloadType == "serverBedrockPreviewLinux") | .downloadUrl')
+ # Latest release.
else
- remotebuildversion="${mcversion}"
+ remotebuildurl=$(echo "${remotebuildresponse}" | jq -r 'select(.downloadType == "serverBedrockLinux") | .downloadUrl')
fi
- remotebuildurl="https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-${remotebuildversion}.zip"
+ remotebuildversion=$(echo "${remotebuildurl}" | grep -Eo "[.0-9]+[0-9]")
+ remotebuildfilename="bedrock-server-${remotebuildversion}.zip"
if [ "${firstcommandname}" != "INSTALL" ]; then
fn_print_dots "Checking remote build: ${remotelocation}"
diff --git a/lgsm/modules/update_mta.sh b/lgsm/modules/update_mta.sh
index c7214665d..50a3fb895 100644
--- a/lgsm/modules/update_mta.sh
+++ b/lgsm/modules/update_mta.sh
@@ -34,7 +34,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://linux.multitheftauto.com/revision/latest.txt"
remotebuildresponse=$(curl -s "${apiurl}")
remotebuildfilename="multitheftauto_linux_x64.tar.gz"
diff --git a/lgsm/modules/update_pmc.sh b/lgsm/modules/update_pmc.sh
index 9c288827e..c38911d4e 100644
--- a/lgsm/modules/update_pmc.sh
+++ b/lgsm/modules/update_pmc.sh
@@ -32,7 +32,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://api.papermc.io/v2/projects"
# Get list of projects.
remotebuildresponse=$(curl -s "${apiurl}")
diff --git a/lgsm/modules/update_ts3.sh b/lgsm/modules/update_ts3.sh
index 92f9d3489..e1917e5e1 100644
--- a/lgsm/modules/update_ts3.sh
+++ b/lgsm/modules/update_ts3.sh
@@ -31,7 +31,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://www.teamspeak.com/versions/server.json"
remotebuildresponse=$(curl -s "${apiurl}")
diff --git a/lgsm/modules/update_ut99.sh b/lgsm/modules/update_ut99.sh
index 5f30bdc23..bdfb96f0b 100644
--- a/lgsm/modules/update_ut99.sh
+++ b/lgsm/modules/update_ut99.sh
@@ -32,7 +32,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://api.github.com/repos/OldUnreal/UnrealTournamentPatches/releases/latest"
remotebuildresponse=$(curl -s "${apiurl}")
remotebuildfilename=$(echo "${remotebuildresponse}" | jq -r '.assets[]|select(.browser_download_url | contains("Linux-amd64")) | .name')
diff --git a/lgsm/modules/update_vints.sh b/lgsm/modules/update_vints.sh
index d468d58d4..4021af11a 100644
--- a/lgsm/modules/update_vints.sh
+++ b/lgsm/modules/update_vints.sh
@@ -34,7 +34,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="http://api.vintagestory.at/stable-unstable.json"
remotebuildresponse=$(curl -s "${apiurl}")
if [ "${branch}" == "stable" ]; then
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index 7014ab1a9..f043a4227 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -36,7 +36,7 @@ fn_update_localbuild() {
}
fn_update_remotebuild() {
- # Get remote build info.
+ # Gets remote build info.
apiurl="https://api.github.com/repos/xonotic/xonotic/tags"
remotebuildresponse=$(curl -s "${apiurl}")
remotebuildtag=$(echo "${remotebuildresponse}" | jq -r '.[0].name')
From 1fbd1aad9b6061f936fb92b2761af92ad558a3fb Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Tue, 17 Jun 2025 22:26:49 +0100
Subject: [PATCH 147/154] Release v25.1.6
---
lgsm/modules/core_modules.sh | 2 +-
linuxgsm.sh | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lgsm/modules/core_modules.sh b/lgsm/modules/core_modules.sh
index 51f691d5c..e5e6d1e5d 100644
--- a/lgsm/modules/core_modules.sh
+++ b/lgsm/modules/core_modules.sh
@@ -8,7 +8,7 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
-modulesversion="v25.1.5"
+modulesversion="v25.1.6"
# Core
diff --git a/linuxgsm.sh b/linuxgsm.sh
index af7c182dd..6d6f7251f 100755
--- a/linuxgsm.sh
+++ b/linuxgsm.sh
@@ -24,7 +24,7 @@ if [ -f ".dev-debug" ]; then
set -x
fi
-version="v25.1.5"
+version="v25.1.6"
shortname="core"
gameservername="core"
commandname="CORE"
From 6847401b0406b7eb7691ee0476bd1a60b588e649 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 19 Jun 2025 20:20:36 +0100
Subject: [PATCH 148/154] chore: pre-load details in workflow
---
.github/workflows/details-check.yml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/.github/workflows/details-check.yml b/.github/workflows/details-check.yml
index 748a77991..f52d12c5a 100644
--- a/.github/workflows/details-check.yml
+++ b/.github/workflows/details-check.yml
@@ -68,6 +68,10 @@ jobs:
else
curl -f -o config "https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/main/${{ matrix.shortname }}/${{ steps.sets-servercfgname.outputs.servercfgname }}"
fi
+
+ - name: Pre-load LinuxGSM
+ run: LGSM_GITHUBBRANCH="${GITHUB_REF#refs/heads/}" ./${{ matrix.shortname }}server details
+
- name: Display config
run: |
if [ "${{ steps.sets-servercfgname.outputs.servercfgname }}" == "" ]; then
From 35db6a891829e0def1a576bb12455341604feb1c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 19 Jun 2025 22:07:24 +0100
Subject: [PATCH 149/154] chore: changed workflow to fail-fast false
---
.github/workflows/update-check.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/update-check.yml b/.github/workflows/update-check.yml
index 932e3ea2a..2f2f7babc 100644
--- a/.github/workflows/update-check.yml
+++ b/.github/workflows/update-check.yml
@@ -13,12 +13,12 @@ concurrency:
jobs:
update-check:
if: github.repository_owner == 'GameServerManagers'
- continue-on-error: true
runs-on: ubuntu-latest
strategy:
+ fail-fast: false
matrix:
- shortname: [css, fctr, jk2, mc, mcb, mta, pmc, ts3, ut99, vints]
+ shortname: [css, fctr, jk2, mc, mcb, mta, pmc, ts3, ut99, vints, xnt]
steps:
- name: Download linuxgsm.sh
From 1c91b9b36c0d11abaf66e03d55c072d53096a42c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 19 Jun 2025 22:23:05 +0100
Subject: [PATCH 150/154] fix:(xnt): add missing code to check-update
---
lgsm/modules/command_check_update.sh | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lgsm/modules/command_check_update.sh b/lgsm/modules/command_check_update.sh
index ee4c8ccb3..38f8b4ddc 100644
--- a/lgsm/modules/command_check_update.sh
+++ b/lgsm/modules/command_check_update.sh
@@ -32,6 +32,8 @@ elif [ "${shortname}" == "vints" ]; then
update_vints.sh
elif [ "${shortname}" == "ut99" ]; then
update_ut99.sh
+elif [ "${shortname}" == "xnt" ]; then
+ update_xnt.sh
else
update_steamcmd.sh
fi
From 3622b288c84495ca8beead27274ece034ac15218 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Thu, 19 Jun 2025 23:19:38 +0100
Subject: [PATCH 151/154] fix(xnt): version command not completing carriage
return
---
lgsm/modules/update_xnt.sh | 21 ++++++++++++++++-----
1 file changed, 16 insertions(+), 5 deletions(-)
diff --git a/lgsm/modules/update_xnt.sh b/lgsm/modules/update_xnt.sh
index f043a4227..c00233aa7 100644
--- a/lgsm/modules/update_xnt.sh
+++ b/lgsm/modules/update_xnt.sh
@@ -1,9 +1,9 @@
#!/bin/bash
-# LinuxGSM command_ut99.sh module
+# LinuxGSM command_xnt.sh module
# Author: Daniel Gibbs
# Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com
-# Description: Handles updating of Unreal Tournament 99 servers.
+# Description: Handles updating of Xontic servers.
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
@@ -17,10 +17,21 @@ fn_update_dl() {
fn_update_localbuild() {
# Gets local build info.
fn_print_dots "Checking local build: ${remotelocation}"
-
+ check_status.sh
# Send version command to Xonotic server.
- tmux -L "${socketname}" send-keys -t "${sessionname}" "version\r" > /dev/null 2>&1
- fn_sleep_time_1
+ if [ "${status}" != "0" ]; then
+ tmux -L "${socketname}" send-keys -t "${sessionname}" "version" C-m > /dev/null 2>&1
+ fn_sleep_time_1
+ else
+ exitbypass=1
+ command_start.sh
+ fn_firstcommand_reset
+ exitbypass=1
+ fn_sleep_time_5
+ tmux -L "${socketname}" send-keys -t "${sessionname}" "version" C-m > /dev/null 2>&1
+ command_stop.sh
+ fn_firstcommand_reset
+ fi
# Uses log file to get local build.
localbuild=$(grep "SVQC version: xonotic-v" "${consolelogdir}"/* 2> /dev/null | tail -1 | sed 's/.*SVQC version: \(xonotic-v[0-9.]*\).*/\1/' | tr -d '\000-\011\013-\037')
From 61d4866b3413b3f0627b1939a7de6892276fb40c Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Fri, 20 Jun 2025 00:23:45 +0100
Subject: [PATCH 152/154] fix: remove redundant fetch of default config for
multiple game types
---
lgsm/modules/install_config.sh | 7 -------
1 file changed, 7 deletions(-)
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index db6b1e5cf..3d6fe5374 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -289,7 +289,6 @@ elif [ "${shortname}" == "bt" ]; then
elif [ "${shortname}" == "btl" ]; then
fn_check_cfgdir
array_configs+=(Game.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -370,7 +369,6 @@ elif [ "${shortname}" == "cs" ]; then
fn_list_config_locations
elif [ "${shortname}" == "cs2" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -483,7 +481,6 @@ elif [ "${shortname}" == "hldms" ]; then
fn_list_config_locations
elif [ "${shortname}" == "ohd" ]; then
array_configs+=(Admins.cfg Engine.ini Game.ini MapCycle.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -585,7 +582,6 @@ elif [ "${shortname}" == "pvkii" ]; then
fn_list_config_locations
elif [ "${shortname}" == "pw" ]; then
array_configs+=(PalWorldSettings.ini)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -614,13 +610,11 @@ elif [ "${shortname}" == "q2" ]; then
fn_list_config_locations
elif [ "${shortname}" == "q3" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "q4" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
@@ -784,7 +778,6 @@ elif [ "${shortname}" == "wmc" ]; then
fn_list_config_locations
elif [ "${shortname}" == "xnt" ]; then
array_configs+=(server.cfg)
- fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
From 9eabf2e2f99d02db97d2a1309064c107a8f44850 Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Fri, 20 Jun 2025 00:32:05 +0100
Subject: [PATCH 153/154] fix(xnt): add call to fix_xnt.sh for configuration
setup
---
lgsm/modules/install_config.sh | 1 +
1 file changed, 1 insertion(+)
diff --git a/lgsm/modules/install_config.sh b/lgsm/modules/install_config.sh
index 3d6fe5374..b73e7b4b2 100644
--- a/lgsm/modules/install_config.sh
+++ b/lgsm/modules/install_config.sh
@@ -777,6 +777,7 @@ elif [ "${shortname}" == "wmc" ]; then
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "xnt" ]; then
+ fix_xnt.sh
array_configs+=(server.cfg)
fn_default_config_remote
fn_set_config_vars
From 8f01d1bd9504db645d3107e5c3b9683b1d617cde Mon Sep 17 00:00:00 2001
From: Daniel Gibbs
Date: Sat, 21 Jun 2025 19:19:11 +0100
Subject: [PATCH 154/154] fix(check): update allowed commands to include
RESTART in various checks (#4278)
---
lgsm/modules/check.sh | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/lgsm/modules/check.sh b/lgsm/modules/check.sh
index 59ac2a329..3922aec21 100644
--- a/lgsm/modules/check.sh
+++ b/lgsm/modules/check.sh
@@ -31,7 +31,7 @@ if [ "${commandname}" != "INSTALL" ] && [ "${commandname}" != "UPDATE-LGSM" ] &&
check_system_dir.sh
fi
-allowed_commands_array=(START DEBUG)
+allowed_commands_array=(DEBUG RESTART START)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_executable.sh
@@ -39,7 +39,7 @@ for allowed_command in "${allowed_commands_array[@]}"; do
done
if [ "$(whoami)" != "root" ]; then
- allowed_commands_array=(DEBUG START INSTALL)
+ allowed_commands_array=(DEBUG RESTART START INSTALL)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_glibc.sh
@@ -54,21 +54,21 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
-allowed_commands_array=(BACKUP DEBUG DETAILS START UPDATE)
+allowed_commands_array=(BACKUP DEBUG DETAILS RESTART START UPDATE)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_deps.sh
fi
done
-allowed_commands_array=(CONSOLE DEBUG MONITOR START STOP)
+allowed_commands_array=(CONSOLE DEBUG MONITOR RESTART START STOP)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_config.sh
fi
done
-allowed_commands_array=(DEBUG DETAILS DEV-QUERY-RAW MONITOR POST_DETAILS START STOP POST-DETAILS)
+allowed_commands_array=(DEBUG DETAILS DEV-QUERY-RAW MONITOR POST_DETAILS RESTART START STOP POST-DETAILS)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
if [ -z "${installflag}" ]; then
@@ -77,7 +77,7 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
-allowed_commands_array=(DEBUG START UPDATE VALIDATE CHECK-UPDATE)
+allowed_commands_array=(DEBUG RESTART START UPDATE VALIDATE CHECK-UPDATE)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
if [ "${appid}" ]; then
@@ -86,21 +86,21 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
-allowed_commands_array=(CHANGE-PASSWORD DETAILS MONITOR START STOP UPDATE VALIDATE POST-DETAILS)
+allowed_commands_array=(CHANGE-PASSWORD DETAILS MONITOR RESTART START STOP UPDATE VALIDATE POST-DETAILS)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_status.sh
fi
done
-allowed_commands_array=(DEBUG START INSTALL)
+allowed_commands_array=(DEBUG RESTART START INSTALL)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_system_requirements.sh
fi
done
-allowed_commands_array=(DETAILS MONITOR START STOP UPDATE VALIDATE POST-DETAILS)
+allowed_commands_array=(DETAILS MONITOR RESTART START STOP UPDATE VALIDATE POST-DETAILS)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_gamedig.sh