feat(details): refactor of game info (#4174)

* feat(btl): rename bt1944 to btl (#4124)

* fix(bt1944): update binary file

* feat(btl): rename bt1944 to btl

* rename gameworld to worldname

* rename autosaveinverval to saveinterval

* rust seed

* add exit code to details

* update some variables

* comment

* update random

* current refactor

* modules

* json

* xml

* add core modules to functions dir

* functions

* fix

* use xmllint for parsing xml

* check root

* check logs

* sdtd

* quakec

* changes

* remove dev null

* arma3

* add detect details

* config origin

* fix: cmw mkdir bug

* ini improvements

* further ini improvements

* dst ini

* revert

* httpport

* max players

* source engine

* fix: cannot iterate over null

* fix quakec

* fix(nec): no query port

* more updates

* more updated

* more

* more

* telnet ip

* first test of details checking

* more details updates

* more standardizing

* comment out steamport in not set

* kf2 master server true

* update roserver

* fix bug

* looks for file called config and uses that

* test


test


test


test


test

* download correct configs

* test


test


test


test


test


test


test


test


test


test


test


test


test


test


test


test


test


test


test

* remove blank lines

* update var names

* fail

* continue on error

* install xmllint

* adjust quakec

* fix dst

* fix java

* re order mcb

* fix query port mc

* fix mom

* fix pc

* pc add http port

* add api and http port

* change naming to http from web admin

* api port

* http

* pc2

* add query raw

* list cluster config

* servercfgparse

* update avserver

* tidy up steam ports

* more servers completed

* fix sb

* no config file

* no config file

* add emserver config install

* codacy

* add legacy vars

* add more legacy

* add xmllint

* mta xmllint

* codacy

* codacy
This commit is contained in:
Daniel Gibbs 2023-05-16 20:56:58 +01:00 committed by GitHub
parent 030d451a00
commit 40757ae9b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
51 changed files with 3214 additions and 2341 deletions

74
.github/workflows/details-check.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Details Check
# This action will check that LinuxGSM is picking up game server config and parameter variables.
on:
workflow_dispatch:
push:
jobs:
create-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Generate matrix with generate-matrix.sh
run: chmod +x .github/workflows/detals-check-generate-matrix.sh; .github/workflows/detals-check-generate-matrix.sh
- id: set-matrix
run: |
shortnamearray=$(cat shortnamearray.json)
echo "${shortnamearray}"
echo -n "matrix=${shortnamearray}" >> $GITHUB_OUTPUT
details-check:
needs: create-matrix
continue-on-error: true
runs-on: ubuntu-latest
strategy:
matrix: ${{ fromJSON(needs.create-matrix.outputs.matrix) }}
steps:
- name: Install dependencies
run: sudo apt-get install libxml2-utils jq
- name: Download linuxgsm.sh
run: wget https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/feature/info_game-refactor/linuxgsm.sh; chmod +x linuxgsm.sh
- name: Grab server
run: LGSM_GITHUBBRANCH="feature/info_game-refactor" ./linuxgsm.sh ${{ matrix.shortname }}server
- name: Enable developer mode
run: LGSM_GITHUBBRANCH="feature/info_game-refactor" ./${{ matrix.shortname }}server developer
- id: sets-servercfgname
name: Generate servercfgname
run: |
servercfg=$(sed -n "/^\<servercfgdefault\>/ { s/.*= *\"\?\([^\"']*\)\"\?/\1/p;q }" lgsm/config-lgsm/${{ matrix.shortname }}server/_default.cfg)
echo "servercfgname=$servercfg" >> "$GITHUB_OUTPUT"
- name: Download config
run: |
if [ -z "${{ steps.sets-servercfgname.outputs.servercfgname }}" ]; then
echo "This game server has no config file."
else
curl -f -o config "https://raw.githubusercontent.com/GameServerManagers/Game-Server-Configs/rename/${{ matrix.shortname }}/${{ steps.sets-servercfgname.outputs.servercfgname }}"
fi
- name: Display config
run: |
if [ -z "${{ steps.sets-servercfgname.outputs.servercfgname }}" ]; then
echo "This game server has no config file."
else
cat config
fi
- name: Display parameters
run: grep "startparameters" lgsm/config-default/config-lgsm/${{ matrix.shortname }}server/_default.cfg
- name: Detect details
run: LGSM_GITHUBBRANCH="feature/info_game-refactor" ./${{ matrix.shortname }}server detect-details
- name: Query Raw
run: LGSM_GITHUBBRANCH="feature/info_game-refactor" ./${{ matrix.shortname }}server query-raw

View File

@ -0,0 +1,25 @@
#!/bin/bash
curl "https://raw.githubusercontent.com/GameServerManagers/LinuxGSM/master/lgsm/data/serverlist.csv" | grep -v '^[[:blank:]]*$' > serverlist.csv
echo -n "{" > "shortnamearray.json"
echo -n "\"include\":[" >> "shortnamearray.json"
while read -r line; do
shortname=$(echo "$line" | awk -F, '{ print $1 }')
export shortname
servername=$(echo "$line" | awk -F, '{ print $2 }')
export servername
gamename=$(echo "$line" | awk -F, '{ print $3 }')
export gamename
distro=$(echo "$line" | awk -F, '{ print $4 }')
export distro
echo -n "{" >> "shortnamearray.json"
echo -n "\"shortname\":" >> "shortnamearray.json"
echo -n "\"${shortname}\"" >> "shortnamearray.json"
echo -n "}," >> "shortnamearray.json"
done < serverlist.csv
sed -i '$ s/.$//' "shortnamearray.json"
echo -n "]" >> "shortnamearray.json"
echo -n "}" >> "shortnamearray.json"
rm serverlist.csv

View File

@ -121,7 +121,7 @@ steamcmdforcewindows="no"
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
steammaster="true"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill

View File

@ -12,10 +12,9 @@
ip="0.0.0.0"
port="7777"
beaconport="15000"
maxplayers="32"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-port="${port}" -beaconport="${beaconport}" -MULTIHOME="${ip}" -maxplayers=${maxplayers}"
startparameters="-port="${port}" -beaconport="${beaconport}" -MULTIHOME="${ip}""
#### LinuxGSM Settings ####

View File

@ -139,8 +139,8 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
querymode="1"
querytype=""
## Console type
consoleverbose="yes"

View File

@ -14,9 +14,9 @@ port="27015"
defaultmap="co_core"
maxplayers="24"
servername="LinuxGSM Server"
webadminuser="admin"
webadminpass="admin"
webadminport="8080"
httpuser="admin"
httppassword="admin"
httpport="8080"
mods=""
serverpassword=""
# Add the following line to the parms if you want a private server. Ensuring
@ -24,7 +24,7 @@ serverpassword=""
# -password \"${serverpassword}\"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
startparameters="-name \"${servername}\" -port ${port} -webinterface -webdomain ${ip} -webuser ${httpuser} -webpassword \"${httppassword}\" -webport ${httpport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
#### LinuxGSM Settings ####

View File

@ -14,9 +14,9 @@ port="27015"
defaultmap="ns2_summit"
maxplayers="24"
servername="LinuxGSM Server"
webadminuser="admin"
webadminpass="admin"
webadminport="8080"
httpuser="admin"
httppassword="admin"
httpport="8080"
mods=""
serverpassword=""
# Add the following line to the parms if you want a private server. Ensuring
@ -24,7 +24,7 @@ serverpassword=""
# -password \"${serverpassword}\"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods2 \"${mods}\""
startparameters="-name \"${servername}\" -port ${port} -webinterface -webdomain ${ip} -webuser ${httpuser} -webpassword \"${httppassword}\" -webport ${httpport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods2 \"${mods}\""
#### LinuxGSM Settings ####

View File

@ -119,7 +119,7 @@ steamcmdforcewindows="no"
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
steammaster="true"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill

View File

@ -115,7 +115,7 @@ steamcmdforcewindows="no"
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
steammaster="true"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill

View File

@ -10,15 +10,15 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
maxplayers="40"
port="10027"
queryport="10037"
rconport="21114"
randommap="NONE"
maxplayers="40"
reservedslots="0"
tickrate="50"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport} RCONPORT=${rconport} FIXEDMAXPLAYERS=${maxplayers} NumReservedSlots=${reservedslots}"
startparameters="MULTIHOME=${ip} RANDOM=${randommap} Port=${port} QueryPort=${queryport} FIXEDMAXPLAYERS=${maxplayers} FIXEDMAXTICKRATE=${tickrate} NumReservedSlots=${reservedslots}"
#### LinuxGSM Settings ####

View File

@ -13,8 +13,6 @@ port="7777"
queryport="27015"
defaultmap="StationKappa"
servername="LinuxGSM Server"
serverpassword="NOT SET" # Can't be adjusted currently
maxplayers="8" # Can't be adjusted currently
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="Port=${port}?QueryPort=${queryport} -startup_map ${defaultmap} -server_name \"${servername}\""

View File

@ -10,17 +10,17 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
servername="LinuxGSM"
maxplayers="10"
port="27500"
queryport="27015"
worldtype="Moon"
maxplayers="10"
autosaveinterval=300
saveinterval="300"
servername="LinuxGSM"
worldname="moon_save"
worldtype="Moon"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# Edit with care
startparameters="-LOADLATEST ${worldname} ${worldtype} -settings ServerName ${servername} StartLocalHost true ServerVisible true ServerMaxPlayers ${maxplayers} GamePort ${port} UpdatePort ${queryport} UPNPEnabled true AutoSave true SaveInterval ${autosaveinterval}"
startparameters="-LOADLATEST ${worldname} ${worldtype} -settings ServerName ${servername} StartLocalHost true ServerVisible true ServerMaxPlayers ${maxplayers} GamePort ${port} UpdatePort ${queryport} UPNPEnabled true AutoSave true SaveInterval ${saveinterval}"
#### LinuxGSM Settings ####

View File

@ -13,7 +13,7 @@ servername="Valheim Server"
# Minimum password length is 5.
serverpassword=""
port="2456"
gameworld="${selfname}"
worldname="${selfname}"
public="1"
savedir="$HOME/.config/unity3d/IronGate/Valheim"
logFile=""
@ -26,7 +26,7 @@ backuplong="43200"
crossplay=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name '${servername}' -password ${serverpassword} -port ${port} -world ${gameworld} -public ${public} -savedir '${savedir}' -logFile '${logFile}' -saveinterval ${saveinterval} -backups ${backups} -backupshort ${backupshort} -backuplong ${backuplong} ${crossplay:+-crossplay}"
startparameters="-name '${servername}' -password ${serverpassword} -port ${port} -world ${worldname} -public ${public} -savedir '${savedir}' -logFile '${logFile}' -saveinterval ${saveinterval} -backups ${backups} -backupshort ${backupshort} -backuplong ${backuplong} ${crossplay:+-crossplay}"
#### LinuxGSM Settings ####

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-libs
mta,ncurses-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-libs mta,ncurses-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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,wget,xz-utils
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-libs
mta,ncurses-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-libs mta,ncurses-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -68,7 +68,7 @@ mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mta,ncurses-compat-libs,libxml2
nd
nec
nmrih,ncurses-libs.i686
@ -97,7 +97,7 @@ sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sdtd,telnet,expect,libxml2
sf
sfc,ncurses-libs.i686
sof2

1 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
68 mh
69 mohaa,compat-libstdc++-33.i686
70 mom
71 mta,ncurses-compat-libs mta,ncurses-compat-libs,libxml2
72 nd
73 nec
74 nmrih,ncurses-libs.i686
97 sbots
98 scpsl
99 scpslsm
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2
101 sf
102 sfc,ncurses-libs.i686
103 sof2

View File

@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 all,bc,binutils,bsdmainutils,bzip2,ca-certificates,cpio,curl,file,gzip,hostname,jq,lib32gcc1,lib32stdc++6,netcat,python3,tar,tmux,unzip,util-linux,wget,xz-utils
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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,wget,xz-utils
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -66,7 +66,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -95,7 +95,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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,wget,xz-utils
66 mh
67 mohaa,libstdc++5:i386
68 mom
69 mta,libncursesw5 mta,libncursesw5,libxml2-utils
70 nd
71 nec
72 nmrih,libtinfo5:i386
95 sbots
96 scpsl,mono-complete
97 scpslsm,mono-complete
98 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
99 sf
100 sfc,libtinfo5:i386
101 sof2

View File

@ -68,7 +68,7 @@ mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mta,libncursesw5,libxml2-utils
nd
nec
nmrih,libtinfo5:i386
@ -97,7 +97,7 @@ sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sdtd,telnet,expect,libxml2-utils
sf
sfc,libtinfo5:i386
sof2

1 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,wget,xz-utils
68 mh
69 mohaa,libstdc++5:i386
70 mom
71 mta,libncursesw5 mta,libncursesw5,libxml2-utils
72 nd
73 nec
74 nmrih,libtinfo5:i386
97 sbots
98 scpsl,mono-complete
99 scpslsm,mono-complete
100 sdtd,telnet,expect sdtd,telnet,expect,libxml2-utils
101 sf
102 sfc,libtinfo5:i386
103 sof2

View File

@ -0,0 +1,26 @@
#!/bin/bash
# LinuxGSM check_logs.sh module
# Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if log files exist.
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
install_logs.sh
}
# Create directories for the script and console logs.
if [ ! -d "${lgsmlogdir}" ] || [ ! -d "${consolelogdir}" ]; then
fn_check_logs
fi
# Create gamelogdir.
# If variable exists gamelogdir exists and log/server does not.
if [ "${gamelogdir}" ] && [ -d "${gamelogdir}" ] && [ ! -d "${logdir}/server" ]; then
fn_check_logs
fi

View File

@ -0,0 +1,21 @@
#!/bin/bash
# LinuxGSM check_root.sh module
# Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib
# Website: https://linuxgsm.com
# Description: Checks if the user tried to run the script as root.
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
if [ "${commandname}" != "INSTALL" ]; then
fn_print_fail_nl "Do NOT run this script as root!"
if [ -d "${lgsmlogdir}" ]; then
fn_script_log_fatal "${selfname} attempted to run as root."
else
# Forces exit code is log does not yet exist.
exitcode=1
fi
core_exit.sh
fi
fi

290
lgsm/functions/core_functions.sh Executable file → Normal file
View File

@ -41,653 +41,653 @@ core_legacy.sh() {
core_exit.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
core_getopt.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
core_trap.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
core_steamcmd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
core_github.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Commands
command_backup.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_console.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_debug.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_details.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_sponsor.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_postdetails.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_test_alert.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_monitor.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_start.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_stop.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_validate.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_install.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_install_resources_mta.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_squad_license.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_mods_install.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_mods_update.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_mods_remove.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_fastdl.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_ts3_server_pass.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_restart.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_skeleton.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_wipe.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_send.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Checks
check.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_config.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_deps.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_executable.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_glibc.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_ip.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_last_update.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_logs.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_permissions.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_root.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_status.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_steamcmd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_system_dir.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_system_requirements.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_tmuxception.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
check_version.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Compress
compress_unreal2_maps.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
compress_ut99_maps.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Mods
mods_list.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
mods_core.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Dev
command_dev_clear_functions.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_dev_debug.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_dev_detect_deps.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_dev_detect_glibc.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_dev_detect_ldd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_dev_query_raw.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Fix
fix.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ark.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_av.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_arma3.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_armar.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_bt.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_bo.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_cmw.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_csgo.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_dst.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_hw.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ins.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_kf.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_kf2.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_lo.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_mcb.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_mta.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_nmrih.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_onset.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ro.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_rust.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_rw.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_sfc.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_st.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_steamcmd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_terraria.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_tf2.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ut3.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_rust.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_samp.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_sdtd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_sof2.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_squad.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ts3.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ut2k4.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_ut.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_unt.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_vh.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_wurm.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fix_zmr.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Info
info_distro.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
info_game.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
info_messages.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
info_stats.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Alert
alert.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_discord.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_email.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_ifttt.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_mailgun.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_pushbullet.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_pushover.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_gotify.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_telegram.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_rocketchat.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
alert_slack.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Logs
core_logs.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Query
query_gamedig.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Update
command_update_functions.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_update_linuxgsm.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_update.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
command_check_update.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_ts3.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_minecraft.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_minecraft_bedrock.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_papermc.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_mta.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_factorio.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_jediknight2.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_steamcmd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_vintagestory.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
update_ut99.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
fn_update_functions.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
#
@ -701,96 +701,96 @@ fn_autoinstall() {
install_complete.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_config.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_factorio_save.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_dst_token.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_eula.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_gsquery.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_gslt.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_header.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_logs.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_retry.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_server_dir.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_server_files.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_stats.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_steamcmd.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_ts3.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_ts3db.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_ut2k4.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_dl_ut2k4.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
install_ut2k4_key.sh() {
functionfile="${FUNCNAME[0]}"
fn_fetch_function
fn_fetch_module
}
# Calls code required for legacy servers

View File

@ -0,0 +1,816 @@
#!/bin/bash
# LinuxGSM core_modules.sh module
# Author: Daniel Gibbs
# Contributors: http://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.
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
modulesversion="v23.2.0"
# Core
core_dl.sh() {
modulefile="${FUNCNAME[0]}"
if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
fn_fetch_core_dl "lgsm/modules" "core_dl.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
else
fn_bootstrap_fetch_file_github "lgsm/modules" "core_dl.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
fi
}
core_messages.sh() {
modulefile="${FUNCNAME[0]}"
if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
fn_fetch_core_dl "lgsm/modules" "core_messages.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
else
fn_bootstrap_fetch_file_github "lgsm/modules" "core_messages.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
fi
}
core_legacy.sh() {
modulefile="${FUNCNAME[0]}"
if [ "$(type fn_fetch_core_dl 2> /dev/null)" ]; then
fn_fetch_core_dl "lgsm/modules" "core_legacy.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
else
fn_bootstrap_fetch_file_github "lgsm/modules" "core_legacy.sh" "${modulesdir}" "chmodx" "run" "noforcedl" "nohash"
fi
}
core_exit.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
core_getopt.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
core_trap.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
core_steamcmd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
core_github.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Commands
command_backup.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_console.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_debug.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_details.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_sponsor.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_postdetails.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_test_alert.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_monitor.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_start.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_stop.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_validate.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_install.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_install_resources_mta.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_squad_license.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_mods_install.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_mods_update.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_mods_remove.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_fastdl.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_ts3_server_pass.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_restart.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_skeleton.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_wipe.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_send.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Checks
check.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_config.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_deps.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_executable.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_glibc.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_ip.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_last_update.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_logs.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_permissions.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_root.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_status.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_steamcmd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_system_dir.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_system_requirements.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_tmuxception.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
check_version.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Compress
compress_unreal2_maps.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
compress_ut99_maps.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Mods
mods_list.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
mods_core.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Dev
command_dev_clear_modules.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_dev_debug.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_dev_detect_deps.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_dev_detect_glibc.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_dev_detect_ldd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_dev_query_raw.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Fix
fix.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ark.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_av.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_arma3.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_armar.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_bt.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_bo.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_cmw.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_csgo.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_dst.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_hw.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ins.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_kf.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_kf2.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_lo.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_mcb.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_mta.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_nmrih.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_onset.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ro.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_rust.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_rw.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_sfc.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_st.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_steamcmd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_terraria.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_tf2.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ut3.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_rust.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_samp.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_sdtd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_sof2.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_squad.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ts3.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ut2k4.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_ut.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_unt.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_vh.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_wurm.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fix_zmr.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Info
info_distro.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
info_game.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
info_messages.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
info_stats.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Alert
alert.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_discord.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_email.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_ifttt.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_mailgun.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_pushbullet.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_pushover.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_gotify.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_telegram.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_rocketchat.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
alert_slack.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Logs
core_logs.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Query
query_gamedig.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Update
command_update_modules.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_update_linuxgsm.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_update.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_check_update.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_ts3.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_minecraft.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_minecraft_bedrock.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_papermc.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_mta.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_factorio.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_jediknight2.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_steamcmd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_vintagestory.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
update_ut99.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
fn_update_modules.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
#
## Installer modules
#
fn_autoinstall() {
autoinstall=1
command_install.sh
}
install_complete.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_config.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_factorio_save.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_dst_token.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_eula.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_gsquery.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_gslt.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_header.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_logs.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_retry.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_server_dir.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_server_files.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_stats.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_steamcmd.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_ts3.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_ts3db.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_ut2k4.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_dl_ut2k4.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
install_ut2k4_key.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
# Calls code required for legacy servers
core_legacy.sh
# Creates tmp dir if missing
if [ ! -d "${tmpdir}" ]; then
mkdir -p "${tmpdir}"
fi
# Creates lock dir if missing
if [ ! -d "${lockdir}" ]; then
mkdir -p "${lockdir}"
fi
# Calls on-screen messages (bootstrap)
core_messages.sh
#Calls file downloader (bootstrap)
core_dl.sh
# Calls the global Ctrl-C trap
core_trap.sh

View File

@ -39,25 +39,25 @@ function fn_is_valid_ip() {
# If the IP variable has been set by user.
if fn_is_valid_ip "${ip}"; then
queryips=("${ip}")
webadminip=("${ip}")
httpip=("${ip}")
telnetip=("${ip}")
# If game config does have an IP set.
elif fn_is_valid_ip "${configip}"; then
queryips=("${configip}")
ip="${configip}"
webadminip=("${configip}")
httpip=("${configip}")
telnetip=("${configip}")
# If there is only 1 server IP address.
# Some IP details can automaticly use the one IP
elif [ "${#current_ips[@]}" == "1" ]; then
queryips=("127.0.0.1" "${current_ips[@]}")
ip="0.0.0.0"
webadminip=("${current_ips[@]}")
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[@]}")
ip="0.0.0.0"
webadminip=("${ip}")
httpip=("${ip}")
telnetip=("${ip}")
fi

View File

@ -0,0 +1,94 @@
#!/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 "${lightgreen}Server Details${default}"
echo -e "=================================================================="
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}"
['ip']="${ip}"
['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 Password']="${serverpassword}"
['Servername']="${servername}"
['Shard']="${shard}"
['Sharding']="${sharding}"
['Steam Auth Port']="${steamauthport}"
['Telnet IP']="${telnetip}"
['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 "${lightgreen}Available Server Details${default}"
echo -e "================================="
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}"
echo -e "================================="
echo -e "${missing_details}"
fi
core_exit.sh

View File

@ -28,169 +28,164 @@ echo -e "=================================================================="
{
echo -e "${lightblue}Port Name \tPort Number \tStatus \tTCP \tUDP${default}"
if [ -v 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 }')"
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}" == "rw" ]; then
if [ -v port2 ]; then
echo -e "Game+1: \t${port2} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port2} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port2} | grep udp | awk '{ print $2 }')"
echo -e "Game+1: \t${port2} \t$(ss -tupl | grep -c "${port}") \t$(ss -tupl | grep "${port2}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${port2}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game+1:"
fi
if [ -v port3 ]; then
echo -e "Game+2: \t${port3} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port3} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port3} | grep udp | awk '{ print $2 }')"
echo -e "Game+2: \t${port3} \t$(ss -tupl | grep -c "${port}") \t$(ss -tupl | grep "${port3}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${port3}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game+2:"
fi
if [ -v port4 ]; then
echo -e "Game+3: \t${port4} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port4} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port4} | grep udp | awk '{ print $2 }')"
echo -e "Game+3: \t${port4} \t$(ss -tupl | grep -c "${port}") \t$(ss -tupl | grep "${port4}" | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep "${port4}" | grep udp | awk '{ print $2 }')"
else
echo -e "Game+3:"
fi
fi
if [ -v 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 }')"
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:"
fi
if [ -v 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 }')"
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
if [ -v 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 }')"
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 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 }')"
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
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 }')"
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 webadminport ]; then
echo -e "Web Admin: \t${webadminport} \t$(ss -tupl | grep -c ${webadminport}) \t$(ss -tupl | grep ${webadminport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${webadminport} | grep udp | awk '{ print $2 }')"
if [ -v 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 Admin:"
echo -e "Web Interface:"
fi
if [ -v 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 }')"
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 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 }')"
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 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 }')"
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 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 }')"
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 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 }')"
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
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
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 }')"
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 steammasterport ]; then
echo -e "Steam: Master: \t${steammasterport} \t$(ss -tupl | grep -c ${steammasterport}) \t$(ss -tupl | grep ${steammasterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steammasterport} | grep udp | awk '{ print $2 }')"
else
echo -e "Steam: Master:"
fi
if [ -v steamqueryport ]; then
echo -e "Steam: Query: \t${steamqueryport} \t$(ss -tupl | grep -c ${steamqueryport}) \t$(ss -tupl | grep ${steamqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamqueryport} | grep udp | awk '{ print $2 }')"
else
echo -e "Steam: Query:"
fi
if [ -v 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 }')"
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 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 }')"
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 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 }')"
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 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 }')"
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 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 }')"
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 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 }')"
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
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 }')"
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
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 }')"
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):"
fi
if [ -v 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 }')"
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 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 }')"
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

0
lgsm/modules/command_sponsor.sh Normal file → Executable file
View File

0
lgsm/modules/core_functions.sh Executable file → Normal file
View File

View File

@ -50,6 +50,7 @@ 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_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.")
@ -145,7 +146,7 @@ currentopt+=("${cmd_install[@]}" "${cmd_auto_install[@]}")
## Developer commands.
currentopt+=("${cmd_dev_debug[@]}")
if [ -f ".dev-debug" ]; then
currentopt+=("${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_clear_modules[@]}")
currentopt+=("${cmd_dev_details[@]}" "${cmd_dev_detect_deps[@]}" "${cmd_dev_detect_glibc[@]}" "${cmd_dev_detect_ldd[@]}" "${cmd_dev_query_raw[@]}" "${cmd_dev_clear_modules[@]}")
fi
## Sponsor.
@ -183,7 +184,7 @@ fn_opt_usage() {
core_exit.sh
}
# Check if command existw and run corresponding scripts, or display script usage.
# Check if command exists and run corresponding scripts, or display script usage.
if [ -z "${getopt}" ]; then
fn_opt_usage
fi

View File

@ -15,6 +15,30 @@ for legacy_version in "${legacy_versions_array[@]}"; do
fi
done
if [ -n "${webadminuser}" ]; then
httpuser="${webadminuser}"
fi
if [ -n "${webadminpass}" ]; then
httppassword="${webadminpass}"
fi
if [ -n "${webadminport}" ]; then
httpport="${webadminport}"
fi
if [ -n "${webadminip}" ]; then
httpip="${webadminip}"
fi
if [ -n "${gameworld}" ]; then
worldname="${gameworld}"
fi
if [ -n "${autosaveinterval}" ]; then
saveinterval="${autosaveinterval}"
fi
if [ -z "${serverfiles}" ]; then
serverfiles="${filesdir}"
fi

View File

@ -299,6 +299,11 @@ command_dev_debug.sh() {
fn_fetch_module
}
command_dev_details.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module
}
command_dev_detect_deps.sh() {
modulefile="${FUNCNAME[0]}"
fn_fetch_module

View File

@ -17,7 +17,9 @@ fi
if [ ! -f "${servercfgfullpath}" ]; then
fn_fix_msg_start
fixname="copy config"
mkdir "${servercfgdir}"
if [ ! -d "${servercfgdir}" ]; then
mkdir -p "${servercfgdir}"
fi
cp "${systemdir}/UDKGame/Config/"*.ini "${servercfgdir}"
fn_fix_msg_end
fi

View File

@ -7,12 +7,12 @@
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
echo -e "Applying WebAdmin ROOst.css fix."
echo -e "Applying webinterface 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 WebAdmin CharSet fix."
echo -e "Applying webinterface 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

File diff suppressed because it is too large Load Diff

View File

@ -35,8 +35,8 @@ fn_info_message_password_strip() {
statspassword="********"
fi
if [ "${webadminpass}" ]; then
webadminpass="********"
if [ "${httppassword}" ]; then
httppassword="********"
fi
if [ "${telnetpass}" ]; then
@ -593,6 +593,12 @@ fn_info_message_script() {
if [ -n "${networkcfgfullpath}" ]; then
echo -e "${lightblue}Network config file:\t${default}${networkcfgfullpath}"
fi
# Cluster config file location (DST)
if [ -n "${clustercfgfullpath}" ]; then
echo -e "${lightblue}Cluster config file:\t${default}${clustercfgfullpath}"
fi
} | column -s $'\t' -t
}
@ -803,7 +809,7 @@ fn_info_message_arma3() {
fn_port "Game" port udp
fn_port "Voice" voiceport udp
fn_port "Query" queryport udp
fn_port "Steam Master" steammasterport udp
fn_port "Steam" steamport udp
fn_port "Voice (unused)" voiceunusedport udp
fn_port "BattleEye" battleeyeport udp
} | column -s $'\t' -t
@ -823,8 +829,8 @@ fn_info_message_av() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Steam Master" steammasterport udp
fn_port "Steam Query" steamqueryport udp
fn_port "Steam" steamport udp
fn_port "Steamworks P2P" steamworksport udp
fn_port "RCON" rconport tcp
} | column -s $'\t' -t
}
@ -962,7 +968,7 @@ fn_info_message_dayz() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query Steam" queryport udp
fn_port "Steam Master" steammasterport udp
fn_port "Steam" steamport udp
fn_port "BattleEye" battleeyeport udp
} | column -s $'\t' -t
}
@ -980,8 +986,8 @@ fn_info_message_dst() {
fn_port "header"
fn_port "Game: Server" port udp
fn_port "Game: Master" masterport udp
fn_port "Steam" steamport udp
fn_port "Steam: Auth" steamauthport udp
fn_port "Steam: Master" steammasterport udp
} | column -s $'\t' -t
}
@ -989,7 +995,7 @@ fn_info_message_eco() {
{
fn_port "header"
fn_port "Game" port udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
}
@ -1076,19 +1082,19 @@ fn_info_message_kf() {
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Query (GameSpy)" queryportgs udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
fn_port "Steamworks P2P" steamworksport udp
fn_port "Steam" steamport udp
fn_port "Steam Master" steammasterport udp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
echo -e "${lightgreen}${servername} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}
@ -1098,16 +1104,16 @@ fn_info_message_kf2() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
echo -e "${lightgreen}${servername} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}
@ -1193,6 +1199,15 @@ fn_info_message_pc() {
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Steam" steamport udp
fn_port "HTTP" httpport tcp
fn_port "API" apiport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${gamename} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
} | column -s $'\t' -t
}
@ -1268,19 +1283,19 @@ fn_info_message_ro() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
fn_port "Steamworks P2P" steamworksport udp
fn_port "Steam" steamport udp
fn_port "Steam Master" steammasterport udp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
echo -e "${lightgreen}${servername} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}
@ -1356,17 +1371,17 @@ fn_info_message_sdtd() {
fn_port "Game" port udp
fn_port "Game+2" port3 udp
fn_port "Query" queryport tcp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
fn_port "Telnet" telnetport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${gamename} Web Admin${default}"
echo -e "${lightgreen}${gamename} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}/index.html"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}/index.html"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${gamename} Telnet${default}"
@ -1433,15 +1448,15 @@ fn_info_message_spark() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${gamename} Web Admin${default}"
echo -e "${lightgreen}${gamename} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}/index.html"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}/index.html"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}
@ -1459,13 +1474,13 @@ fn_info_message_st() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${gamename} Web Admin${default}"
echo -e "${lightgreen}${gamename} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
} | column -s $'\t' -t
}
@ -1515,63 +1530,42 @@ fn_info_message_tu() {
} | column -s $'\t' -t
}
fn_info_message_unreal() {
fn_info_message_password_strip
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "LAN Beacon" beaconport udp
fn_port "Web Admin" webadminport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
} | column -s $'\t' -t
}
fn_info_message_ut2k4() {
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Query (GameSpy)" queryportgs udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
fn_port "LAN" lanport udp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
echo -e "${lightgreen}${servername} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}
fn_info_message_unreal() {
fn_info_message_password_strip
{
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "LAN Beacon" beaconport udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
echo -e "${lightgreen}${servername} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}
@ -1598,16 +1592,16 @@ fn_info_message_ut3() {
fn_port "header"
fn_port "Game" port udp
fn_port "Query" queryport udp
fn_port "Web Admin" webadminport tcp
fn_port "Web Interface" httpport tcp
} | column -s $'\t' -t
echo -e ""
echo -e "${lightgreen}${servername} Web Admin${default}"
echo -e "${lightgreen}${servername} Web Interface${default}"
fn_messages_separator
{
echo -e "${lightblue}Web Admin enabled:\t${default}${webadminenabled}"
echo -e "${lightblue}Web Admin url:\t${default}http://${webadminip}:${webadminport}"
echo -e "${lightblue}Web Admin username:\t${default}${webadminuser}"
echo -e "${lightblue}Web Admin password:\t${default}${webadminpass}"
echo -e "${lightblue}Web Interface enabled:\t${default}${httpenabled}"
echo -e "${lightblue}Web Interface url:\t${default}http://${httpip}:${httpport}"
echo -e "${lightblue}Web Interface username:\t${default}${httpuser}"
echo -e "${lightblue}Web Interface password:\t${default}${httppassword}"
} | column -s $'\t' -t
}

View File

@ -452,6 +452,9 @@ elif [ "${shortname}" == "eco" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "em" ]; then
fn_default_config_local
fn_list_config_locations
elif [ "${shortname}" == "etl" ]; then
gamedirname="ETLegacy"
array_configs+=(server.cfg)

14
package-lock.json generated
View File

@ -7,7 +7,7 @@
"name": "linuxgsm",
"license": "MIT",
"devDependencies": {
"prettier": "^2.7.1",
"prettier": "^2.8.8",
"prettier-plugin-sh": "^0.12.8"
}
},
@ -127,9 +127,9 @@
"dev": true
},
"node_modules/open": {
"version": "8.4.1",
"resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz",
"integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==",
"version": "8.4.2",
"resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz",
"integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==",
"dev": true,
"dependencies": {
"define-lazy-prop": "^2.0.0",
@ -159,9 +159,9 @@
"dev": true
},
"node_modules/prettier": {
"version": "2.8.4",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz",
"integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==",
"version": "2.8.8",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"

View File

@ -5,7 +5,7 @@
"test": "tests"
},
"devDependencies": {
"prettier": "^2.7.1",
"prettier": "^2.8.8",
"prettier-plugin-sh": "^0.12.8"
},
"scripts": {