Browse Source

Merge branch 'release/v24.3.0'

pull/4675/head v24.3.0
Daniel Gibbs 6 months ago
parent
commit
42333c6a32
No known key found for this signature in database GPG Key ID: 2076B128385E8C55
  1. 6
      .github/ISSUE_TEMPLATE/bug_report.yml
  2. 6
      .github/ISSUE_TEMPLATE/feature_request.yml
  3. 2
      .github/workflows/add-to-project.yml
  4. 2
      lgsm/config-default/config-lgsm/kfserver/_default.cfg
  5. 2
      lgsm/config-default/config-lgsm/roserver/_default.cfg
  6. 189
      lgsm/config-default/config-lgsm/smserver/_default.cfg
  7. 2
      lgsm/config-default/config-lgsm/tfserver/_default.cfg
  8. 4
      lgsm/config-default/config-lgsm/ut3server/_default.cfg
  9. 11
      lgsm/config-default/config-lgsm/vhserver/_default.cfg
  10. 171
      lgsm/config-default/config-lgsm/xntserver/_default.cfg
  11. 5
      lgsm/data/almalinux-8.csv
  12. 5
      lgsm/data/almalinux-9.csv
  13. 5
      lgsm/data/centos-7.csv
  14. 5
      lgsm/data/centos-8.csv
  15. 5
      lgsm/data/centos-9.csv
  16. 5
      lgsm/data/debian-10.csv
  17. 5
      lgsm/data/debian-11.csv
  18. 5
      lgsm/data/debian-12.csv
  19. 139
      lgsm/data/debian-13.csv
  20. 5
      lgsm/data/debian-9.csv
  21. BIN
      lgsm/data/gameicons/mom-icon.png
  22. BIN
      lgsm/data/gameicons/sm-icon.png
  23. BIN
      lgsm/data/gameicons/xnt-icon.png
  24. 5
      lgsm/data/rhel-7.csv
  25. 5
      lgsm/data/rhel-8.csv
  26. 5
      lgsm/data/rhel-9.csv
  27. 5
      lgsm/data/rocky-8.csv
  28. 5
      lgsm/data/rocky-9.csv
  29. 3
      lgsm/data/serverlist.csv
  30. 5
      lgsm/data/ubuntu-16.04.csv
  31. 5
      lgsm/data/ubuntu-18.04.csv
  32. 5
      lgsm/data/ubuntu-20.04.csv
  33. 5
      lgsm/data/ubuntu-22.04.csv
  34. 5
      lgsm/data/ubuntu-23.04.csv
  35. 5
      lgsm/data/ubuntu-23.10.csv
  36. 5
      lgsm/data/ubuntu-24.04.csv
  37. 2
      lgsm/modules/alert.sh
  38. 4
      lgsm/modules/alert_discord.sh
  39. 2
      lgsm/modules/alert_email.sh
  40. 4
      lgsm/modules/alert_gotify.sh
  41. 4
      lgsm/modules/alert_ifttt.sh
  42. 4
      lgsm/modules/alert_pushbullet.sh
  43. 6
      lgsm/modules/alert_pushover.sh
  44. 4
      lgsm/modules/alert_rocketchat.sh
  45. 4
      lgsm/modules/alert_slack.sh
  46. 4
      lgsm/modules/alert_telegram.sh
  47. 2
      lgsm/modules/check.sh
  48. 2
      lgsm/modules/check_config.sh
  49. 2
      lgsm/modules/check_deps.sh
  50. 2
      lgsm/modules/check_executable.sh
  51. 10
      lgsm/modules/check_gamedig.sh
  52. 2
      lgsm/modules/check_glibc.sh
  53. 2
      lgsm/modules/check_ip.sh
  54. 2
      lgsm/modules/check_last_update.sh
  55. 2
      lgsm/modules/check_logs.sh
  56. 55
      lgsm/modules/check_permissions.sh
  57. 2
      lgsm/modules/check_root.sh
  58. 2
      lgsm/modules/check_status.sh
  59. 2
      lgsm/modules/check_steamcmd.sh
  60. 2
      lgsm/modules/check_system_dir.sh
  61. 6
      lgsm/modules/check_system_requirements.sh
  62. 2
      lgsm/modules/check_tmuxception.sh
  63. 2
      lgsm/modules/check_version.sh
  64. 2
      lgsm/modules/command_backup.sh
  65. 2
      lgsm/modules/command_check_update.sh
  66. 2
      lgsm/modules/command_console.sh
  67. 2
      lgsm/modules/command_debug.sh
  68. 2
      lgsm/modules/command_details.sh
  69. 2
      lgsm/modules/command_dev_clear_modules.sh
  70. 2
      lgsm/modules/command_dev_debug.sh
  71. 2
      lgsm/modules/command_dev_detect_deps.sh
  72. 2
      lgsm/modules/command_dev_detect_glibc.sh
  73. 2
      lgsm/modules/command_dev_detect_ldd.sh
  74. 20
      lgsm/modules/command_dev_parse_distro_details.sh
  75. 21
      lgsm/modules/command_dev_parse_game_details.sh
  76. 4
      lgsm/modules/command_dev_query_raw.sh
  77. 2
      lgsm/modules/command_fastdl.sh
  78. 2
      lgsm/modules/command_install.sh
  79. 2
      lgsm/modules/command_install_resources_mta.sh
  80. 2
      lgsm/modules/command_mods_install.sh
  81. 2
      lgsm/modules/command_mods_remove.sh
  82. 2
      lgsm/modules/command_mods_update.sh
  83. 2
      lgsm/modules/command_monitor.sh
  84. 2
      lgsm/modules/command_postdetails.sh
  85. 3
      lgsm/modules/command_restart.sh
  86. 2
      lgsm/modules/command_send.sh
  87. 2
      lgsm/modules/command_skeleton.sh
  88. 2
      lgsm/modules/command_sponsor.sh
  89. 5
      lgsm/modules/command_start.sh
  90. 109
      lgsm/modules/command_stop.sh
  91. 2
      lgsm/modules/command_test_alert.sh
  92. 2
      lgsm/modules/command_ts3_server_pass.sh
  93. 4
      lgsm/modules/command_update.sh
  94. 45
      lgsm/modules/command_update_linuxgsm.sh
  95. 2
      lgsm/modules/command_validate.sh
  96. 2
      lgsm/modules/command_wipe.sh
  97. 2
      lgsm/modules/compress_unreal2_maps.sh
  98. 2
      lgsm/modules/compress_ut99_maps.sh
  99. 9
      lgsm/modules/core_dl.sh
  100. 2
      lgsm/modules/core_exit.sh

6
.github/ISSUE_TEMPLATE/bug_report.yml

@ -30,17 +30,13 @@ body:
label: Linux distro label: Linux distro
multiple: true multiple: true
options: options:
- Ubuntu 24.04
- Ubuntu 22.04 - Ubuntu 22.04
- Ubuntu 20.04 - Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
- Debian 12 - Debian 12
- Debian 11 - Debian 11
- Debian 10
- Debian 9
- RedHat 9 - RedHat 9
- RedHat 8 - RedHat 8
- RedHat 7
- Other - Other
validations: validations:
required: true required: true

6
.github/ISSUE_TEMPLATE/feature_request.yml

@ -30,17 +30,13 @@ body:
label: Linux distro label: Linux distro
multiple: true multiple: true
options: options:
- Ubuntu 24.04
- Ubuntu 22.04 - Ubuntu 22.04
- Ubuntu 20.04 - Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
- Debian 12 - Debian 12
- Debian 11 - Debian 11
- Debian 10
- Debian 9
- RedHat 9 - RedHat 9
- RedHat 8 - RedHat 8
- RedHat 7
- Other - Other
validations: validations:
required: false required: false

2
.github/workflows/add-to-project.yml

@ -11,7 +11,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Add to Project - name: Add to Project
uses: actions/[email protected].1 uses: actions/[email protected].2
with: with:
project-url: https://github.com/orgs/GameServerManagers/projects/11 project-url: https://github.com/orgs/GameServerManagers/projects/11
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }} github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}

2
lgsm/config-default/config-lgsm/kfserver/_default.cfg

@ -146,7 +146,7 @@ stopmode="2"
# 4: gsquery # 4: gsquery
# 5: tcp # 5: tcp
querymode="2" querymode="2"
querytype="protocol-unreal2" querytype="protocol-valve"
## Console type ## Console type
consoleverbose="yes" consoleverbose="yes"

2
lgsm/config-default/config-lgsm/roserver/_default.cfg

@ -142,7 +142,7 @@ stopmode="2"
# 4: gsquery # 4: gsquery
# 5: tcp # 5: tcp
querymode="2" querymode="2"
querytype="protocol-unreal2" querytype="protocol-valve"
## Console type ## Console type
consoleverbose="yes" consoleverbose="yes"

189
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 protected]"
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"

2
lgsm/config-default/config-lgsm/tfserver/_default.cfg

@ -25,7 +25,7 @@ greenhand="true"
maxplayers="40" maxplayers="40"
maxqueuesize="50" maxqueuesize="50"
queuevalidtime="120" 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. serveradmins="" # Use 17-digit Steam IDs separated by commas to grant admin privileges to players.
servername="LinuxGSM" servername="LinuxGSM"
serverpassword="" serverpassword=""

4
lgsm/config-default/config-lgsm/ut3server/_default.cfg

@ -22,8 +22,8 @@ usesstats="false"
shouldadvertise="true" shouldadvertise="true"
pureserver="1" pureserver="1"
allowjoininprogress="true" allowjoininprogress="true"
# Required: GameSpy Username and password # Required: OpenSpy Username and password
# https://docs.linuxgsm.com/game-servers/unreal-tournament-3#server-gamespy-login # https://docs.linuxgsm.com/game-servers/unreal-tournament-3#server-openspy-login
gsusername="" gsusername=""
gspassword="" gspassword=""

11
lgsm/config-default/config-lgsm/vhserver/_default.cfg

@ -10,20 +10,17 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters ## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
servername="LinuxGSM" servername="LinuxGSM"
# Minimum password length is 5. serverpassword="" # Minimum password length is 5.
serverpassword=""
port="2456" port="2456"
worldname="${selfname}" worldname="${selfname}"
public="1" public="1"
savedir="$HOME/.config/unity3d/IronGate/Valheim" savedir="$HOME/.config/unity3d/IronGate/Valheim"
logFile="" logFile=""
saveinterval="1800" saveinterval="1800" # Auto-save in seconds.
backups="4" backups="4"
backupshort="7200" backupshort="7200"
backuplong="43200" backuplong="43200"
# If crossplay is empty, it's off. Fill with any text to make true instanceid="1"
# Crossplay is currently not working on Linux dedicated servers, so for now the default is false (empty)
crossplay=""
# INSTRUCTIONS FOR WORLD MODIFIERS (from Valheim Dedicated Server Manual.pdf located in serverfiles) # 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 # World modifiers can only be set in the start parameters and can be a combination of the following
@ -53,7 +50,7 @@ crossplay=""
worldmodifiers="" worldmodifiers=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters ## 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 #### #### LinuxGSM Settings ####

171
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 protected]"
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"

5
lgsm/data/almalinux-8.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk vpmc,java-21-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-21-openjdk wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/almalinux-9.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk vpmc,java-21-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-21-openjdk wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/centos-7.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-libs,libxml2 mta,ncurses-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/centos-8.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-17-openjdk vpmc,java-17-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-17-openjdk wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/centos-9.csv

@ -69,7 +69,6 @@ mc,java-17-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-17-openjdk vpmc,java-17-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-17-openjdk wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/debian-10.csv

@ -68,7 +68,6 @@ mc,openjdk-11-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -105,6 +104,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-11-jre wmc,openjdk-11-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 4.

5
lgsm/data/debian-11.csv

@ -69,7 +69,6 @@ mc,openjdk-17-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/debian-12.csv

@ -69,7 +69,6 @@ mc,openjdk-17-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-17-jre vpmc,openjdk-17-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

139
lgsm/data/debian-13.csv

@ -0,0 +1,139 @@
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
sm,telnet,expect
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
xnt
zmr,libtinfo5:i386
zps,libtinfo5:i386
Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/debian-9.csv

@ -69,7 +69,6 @@ mc,openjdk-8-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-8-jre vpmc,openjdk-8-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-8-jre wmc,openjdk-8-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

BIN
lgsm/data/gameicons/mom-icon.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

BIN
lgsm/data/gameicons/sm-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

BIN
lgsm/data/gameicons/xnt-icon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

5
lgsm/data/rhel-7.csv

@ -70,7 +70,6 @@ mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-libs,libxml2 mta,ncurses-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/rhel-8.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk vpmc,java-21-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-21-openjdk wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/rhel-9.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk vpmc,java-21-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-21-openjdk wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/rocky-8.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk vpmc,java-21-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-21-openjdk wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/rocky-9.csv

@ -69,7 +69,6 @@ mc,java-21-openjdk
mcb,libnsl mcb,libnsl
mh mh
mohaa,compat-libstdc++-33.i686 mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs,libxml2 mta,ncurses-compat-libs,libxml2
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm
sdtd,telnet,expect,libxml2 sdtd,telnet,expect,libxml2
sf sf
sfc,ncurses-libs.i686 sfc,ncurses-libs.i686
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel,libatomic,pulseaudio-libs-devel
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,java-21-openjdk vpmc,java-21-openjdk
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,java-21-openjdk wmc,java-21-openjdk
wurm,xorg-x11-server-Xvfb wurm,xorg-x11-server-Xvfb
xnt
zmr,ncurses-libs.i686 zmr,ncurses-libs.i686
zps,ncurses-libs.i686 zps,ncurses-libs.i686

Can't render this file because it has a wrong number of fields in line 2.

3
lgsm/data/serverlist.csv

@ -68,7 +68,6 @@ mc,mcserver,Minecraft,ubuntu-22.04
mcb,mcbserver,Minecraft Bedrock,ubuntu-22.04 mcb,mcbserver,Minecraft Bedrock,ubuntu-22.04
mh,mhserver,MORDHAU,ubuntu-22.04 mh,mhserver,MORDHAU,ubuntu-22.04
mohaa,mohaaserver,Medal of Honor: Allied Assault,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 mta,mtaserver,Multi Theft Auto,ubuntu-22.04
nd,ndserver,Nuclear Dawn,ubuntu-22.04 nd,ndserver,Nuclear Dawn,ubuntu-22.04
nec,necserver,Necesse,ubuntu-22.04 nec,necserver,Necesse,ubuntu-22.04
@ -105,6 +104,7 @@ scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod,ubuntu-22.04
sdtd,sdtdserver,7 Days to Die,ubuntu-22.04 sdtd,sdtdserver,7 Days to Die,ubuntu-22.04
sf,sfserver,Satisfactory,ubuntu-22.04 sf,sfserver,Satisfactory,ubuntu-22.04
sfc,sfcserver,SourceForts Classic,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 sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-22.04
sol,solserver,Soldat,ubuntu-22.04 sol,solserver,Soldat,ubuntu-22.04
squad,squadserver,Squad,ubuntu-22.04 squad,squadserver,Squad,ubuntu-22.04
@ -133,5 +133,6 @@ wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-22.04
wf,wfserver,Warfork,ubuntu-22.04 wf,wfserver,Warfork,ubuntu-22.04
wmc,wmcserver,WaterfallMC,ubuntu-22.04 wmc,wmcserver,WaterfallMC,ubuntu-22.04
wurm,wurmserver,Wurm Unlimited,ubuntu-22.04 wurm,wurmserver,Wurm Unlimited,ubuntu-22.04
xnt,xntserver,Xonotic,ubuntu-22.04
zmr,zmrserver,Zombie Master: Reborn,ubuntu-22.04 zmr,zmrserver,Zombie Master: Reborn,ubuntu-22.04
zps,zpsserver,Zombie Panic! Source,ubuntu-22.04 zps,zpsserver,Zombie Panic! Source,ubuntu-22.04

Can't render this file because it has a wrong number of fields in line 47.

5
lgsm/data/ubuntu-16.04.csv

@ -70,7 +70,6 @@ mc,openjdk-8-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta mta
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-8-jre vpmc,openjdk-8-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-8-jre wmc,openjdk-8-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/ubuntu-18.04.csv

@ -70,7 +70,6 @@ mc,openjdk-11-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-11-jre wmc,openjdk-11-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/ubuntu-20.04.csv

@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-21-jre wmc,openjdk-21-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/ubuntu-22.04.csv

@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre vpmc,openjdk-21-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-21-jre wmc,openjdk-21-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/ubuntu-23.04.csv

@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre vpmc,openjdk-21-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-21-jre wmc,openjdk-21-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/ubuntu-23.10.csv

@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre vpmc,openjdk-21-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-21-jre wmc,openjdk-21-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

5
lgsm/data/ubuntu-24.04.csv

@ -69,7 +69,6 @@ mc,openjdk-21-jre
mcb mcb
mh mh
mohaa,libstdc++5:i386 mohaa,libstdc++5:i386
mom
mta,libncursesw5,libxml2-utils mta,libncursesw5,libxml2-utils
nd nd
nec nec
@ -106,6 +105,7 @@ scpslsm,mono-complete
sdtd,telnet,expect,libxml2-utils sdtd,telnet,expect,libxml2-utils
sf sf
sfc,libtinfo5:i386 sfc,libtinfo5:i386
sm,telnet,expect
sof2 sof2
sol sol
squad squad
@ -126,7 +126,7 @@ ut
ut2k4 ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev,libatomic1,libpulse-dev
vints,aspnetcore-runtime-7.0 vints,aspnetcore-runtime-7.0
vpmc,openjdk-21-jre vpmc,openjdk-21-jre
vs vs
@ -134,5 +134,6 @@ wet
wf wf
wmc,openjdk-21-jre wmc,openjdk-21-jre
wurm,xvfb wurm,xvfb
xnt
zmr,libtinfo5:i386 zmr,libtinfo5:i386
zps,libtinfo5:i386 zps,libtinfo5:i386

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/modules/alert.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert.sh module # LinuxGSM alert.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Overall module for managing alerts. # Description: Overall module for managing alerts.

4
lgsm/modules/alert_discord.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_discord.sh module # LinuxGSM alert_discord.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Discord alert. # Description: Sends Discord alert.
@ -142,7 +142,7 @@ else
json="${jsoninfo}" json="${jsoninfo}"
fi 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 if [ -n "${discordsend}" ]; then
fn_print_fail_nl "Sending Discord alert: ${discordsend}" fn_print_fail_nl "Sending Discord alert: ${discordsend}"

2
lgsm/modules/alert_email.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_email.sh module # LinuxGSM alert_email.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends email alert. # Description: Sends email alert.

4
lgsm/modules/alert_gotify.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_gotify.sh module # LinuxGSM alert_gotify.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Gotify alert. # Description: Sends Gotify alert.
@ -34,7 +34,7 @@ else
fi fi
fn_print_dots "Sending Gotify alert" 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 if [ -n "${gotifysend}" ]; then
fn_print_ok_nl "Sending Gotify alert" fn_print_ok_nl "Sending Gotify alert"

4
lgsm/modules/alert_ifttt.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_ifttt.sh module # LinuxGSM alert_ifttt.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends IFTTT alert. # Description: Sends IFTTT alert.
@ -34,7 +34,7 @@ else
fi fi
fn_print_dots "Sending IFTTT alert" 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 if [ -n "${iftttsend}" ]; then
fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}" fn_print_fail_nl "Sending IFTTT alert: ${pushbulletsend}"

4
lgsm/modules/alert_pushbullet.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_pushbullet.sh module # LinuxGSM alert_pushbullet.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Pushbullet Messenger alert. # Description: Sends Pushbullet Messenger alert.
@ -36,7 +36,7 @@ else
fi fi
fn_print_dots "Sending Pushbullet alert" 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 if [ -n "${pushbulletsend}" ]; then
fn_print_fail_nl "Sending Pushbullet alert: ${pushbulletsend}" fn_print_fail_nl "Sending Pushbullet alert: ${pushbulletsend}"

6
lgsm/modules/alert_pushover.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_pushover.sh module # LinuxGSM alert_pushover.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Pushover alert. # Description: Sends Pushover alert.
@ -23,9 +23,9 @@ else
fi fi
if [ -z "${alerturl}" ]; then 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=" <b>Server name</b><br>${servername}<br><br><b>Information</b><br>${alertmessage}<br><br><b>Game</b><br>${gamename}<br><br><b>Server IP</b><br>${alertip}:${port}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br>Server Time<br>$(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=" <b>Server name</b><br>${servername}<br><br><b>Information</b><br>${alertmessage}<br><br><b>Game</b><br>${gamename}<br><br><b>Server IP</b><br>${alertip}:${port}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br>Server Time<br>$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
else 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=" <b>Server name</b><br>${servername}<br><br><b>Information</b><br>${alertmessage}<br><br><b>Game</b><br>${gamename}<br><br><b>Server IP</b><br>${alertip}:${port}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a><br><br>Server Time<br>$(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=" <b>Server name</b><br>${servername}<br><br><b>Information</b><br>${alertmessage}<br><br><b>Game</b><br>${gamename}<br><br><b>Server IP</b><br>${alertip}:${port}<br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a><br><br>Server Time<br>$(date)" "https://api.pushover.net/1/messages.json" | grep errors)
fi fi
if [ -n "${pushoversend}" ]; then if [ -n "${pushoversend}" ]; then

4
lgsm/modules/alert_rocketchat.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_rocketchat.sh module # LinuxGSM alert_rocketchat.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Rocketchat alert. # Description: Sends Rocketchat alert.
@ -123,7 +123,7 @@ else
fi fi
fn_print_dots "Sending Rocketchat alert" 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 if [ -n "${rocketchatsend}" ]; then
fn_print_ok_nl "Sending Rocketchat alert" fn_print_ok_nl "Sending Rocketchat alert"

4
lgsm/modules/alert_slack.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_slack.sh module # LinuxGSM alert_slack.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Slack alert. # Description: Sends Slack alert.
@ -182,7 +182,7 @@ fi
fn_print_dots "Sending Slack alert" 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 if [ "${slacksend}" == "ok" ]; then
fn_print_ok_nl "Sending Slack alert" fn_print_ok_nl "Sending Slack alert"

4
lgsm/modules/alert_telegram.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM alert_telegram.sh module # LinuxGSM alert_telegram.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends Telegram Messenger alert. # Description: Sends Telegram Messenger alert.
@ -40,7 +40,7 @@ else
fi fi
fn_print_dots "Sending Telegram alert" 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 if [ -n "${telegramsend}" ]; then
fn_print_fail_nl "Sending Telegram alert: ${telegramsend}" fn_print_fail_nl "Sending Telegram alert: ${telegramsend}"

2
lgsm/modules/check.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check.sh module # LinuxGSM check.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Overall module for managing checks. # Description: Overall module for managing checks.
# Runs checks that will either halt on or fix an issue. # Runs checks that will either halt on or fix an issue.

2
lgsm/modules/check_config.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_config.sh module # LinuxGSM check_config.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if the server config is missing and warns the user if needed. # Description: Checks if the server config is missing and warns the user if needed.

2
lgsm/modules/check_deps.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_deps.sh module # LinuxGSM check_deps.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks and installs missing dependencies. # Description: Checks and installs missing dependencies.

2
lgsm/modules/check_executable.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_executable.sh module # LinuxGSM check_executable.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if server executable exists. # Description: Checks if server executable exists.

10
lgsm/modules/check_gamedig.sh

@ -1,19 +1,19 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_gamedig.sh module # LinuxGSM check_gamedig.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Installs nodejs and gamedig # 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 ""
echo -e "${bold}${lightyellow}Installing Gamedig${default}" echo -e "${bold}${lightyellow}Installing Gamedig${default}"
fn_script_log_info "Installing Gamedig" fn_script_log_info "Installing Gamedig"
cd "${lgsmdir}" || exit 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 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 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 npm update > /dev/null 2>&1
fi fi

2
lgsm/modules/check_glibc.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_glibc.sh module # LinuxGSM check_glibc.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if the server has the correct Glibc version. # Description: Checks if the server has the correct Glibc version.

2
lgsm/modules/check_ip.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_ip.sh module # LinuxGSM check_ip.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Automatically identifies the server interface IP. # 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". # If multiple interfaces are detected the user will need to manually set using ip="0.0.0.0".

2
lgsm/modules/check_last_update.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_last_update.sh module # LinuxGSM check_last_update.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks Lockfile to see when last update happened. # Description: Checks Lockfile to see when last update happened.
# Will reboot server if instance not rebooted since update. # Will reboot server if instance not rebooted since update.

2
lgsm/modules/check_logs.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_logs.sh module # LinuxGSM check_logs.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if log files exist. # Description: Checks if log files exist.

55
lgsm/modules/check_permissions.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_permissions.sh # LinuxGSM check_permissions.sh
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks ownership & permissions of scripts, files and directories. # Description: Checks ownership & permissions of scripts, files and directories.
@ -13,6 +13,11 @@ fn_check_ownership() {
selfownissue=1 selfownissue=1
fi fi
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 [ -d "${modulesdir}" ]; then
if [ "$(find "${modulesdir}" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then if [ "$(find "${modulesdir}" -not -name '*.swp' -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
funcownissue=1 funcownissue=1
@ -23,18 +28,18 @@ fn_check_ownership() {
filesownissue=1 filesownissue=1
fi fi
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_print_fail_nl "Ownership issues found"
fn_script_log_fail "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_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:" 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 if [ "${selfownissue}" == "1" ]; then
find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n" find "${rootdir}/${selfname}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi fi
if [ "${funcownissue}" == "1" ]; then if [ "${lgsmownissue}" == "1" ]; then
find "${modulesdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n" find "${lgsmdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi fi
if [ "${filesownissue}" == "1" ]; then if [ "${filesownissue}" == "1" ]; then
find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n" find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
@ -53,27 +58,46 @@ fn_check_ownership() {
} }
fn_check_permissions() { fn_check_permissions() {
# Check modules files are executable.
if [ -d "${modulesdir}" ]; then if [ -d "${modulesdir}" ]; then
if [ "$(find "${modulesdir}" -type f -not -executable | wc -l)" -ne "0" ]; then 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_print_fail_nl "Permissions issues found"
fn_script_log_fail "Permissions issues found" fn_script_log_fail "Permissions issues found"
fn_print_information_nl "The following files are not executable:" fn_print_information_nl "The following files are not executable:"
fn_script_log_info "The following files are not executable:" fn_script_log_info "The following files are not executable:"
{ {
echo -e "File\n" echo -en "File:"
find "${modulesdir}" -type f -not -executable -printf "%p\n" echo -en "${findnotexecutable}"
} | column -s $'\t' -t | tee -a "${lgsmlog}" } | column -s $'\t' -t | tee -a "${lgsmlog}"
if [ "${monitorflag}" == 1 ]; then
alert="permissions" # Attempt to make the files executable
alert.sh 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 fi
core_exit.sh
fi fi
fi fi
# Check rootdir permissions. # Check rootdir permissions.
if [ "${rootdir}" ]; then if [ -d "${rootdir}" ]; then
# Get permission numbers on directory under the form 775. # Get permission numbers on directory should return 775.
rootdirperm=$(stat -c %a "${rootdir}") rootdirperm=$(stat -c %a "${rootdir}")
# Grab the first and second digit for user and group permission. # Grab the first and second digit for user and group permission.
userrootdirperm="${rootdirperm:0:1}" userrootdirperm="${rootdirperm:0:1}"
@ -92,6 +116,7 @@ fn_check_permissions() {
core_exit.sh core_exit.sh
fi fi
fi fi
# Check if executable is executable and attempt to fix it. # Check if executable is executable and attempt to fix it.
# First get executable name. # First get executable name.
execname=$(basename "${executable}") execname=$(basename "${executable}")
@ -141,7 +166,7 @@ fn_check_permissions() {
fi 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. # Checks for permission errors in /sys directory.
fn_sys_perm_errors_detect() { fn_sys_perm_errors_detect() {

2
lgsm/modules/check_root.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_root.sh module # LinuxGSM check_root.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if the user tried to run the script as root. # Description: Checks if the user tried to run the script as root.

2
lgsm/modules/check_status.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_status.sh module # LinuxGSM check_status.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks the process status of the server. Either online or offline. # Description: Checks the process status of the server. Either online or offline.

2
lgsm/modules/check_steamcmd.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_steamcmd.sh module # LinuxGSM check_steamcmd.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if SteamCMD is installed correctly. # Description: Checks if SteamCMD is installed correctly.

2
lgsm/modules/check_system_dir.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_system_dir.sh module # LinuxGSM check_system_dir.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if systemdir/serverfiles is accessible. # Description: Checks if systemdir/serverfiles is accessible.

6
lgsm/modules/check_system_requirements.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_system_requirements.sh # LinuxGSM check_system_requirements.sh
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks RAM requirements. # Description: Checks RAM requirements.
@ -9,7 +9,7 @@ moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
info_distro.sh 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 if [ "${shortname}" == "ark" ]; then
ramrequirementgb="7" ramrequirementgb="7"
@ -49,6 +49,8 @@ elif [ "${shortname}" == "sf" ]; then
ramrequirementgb="12" ramrequirementgb="12"
elif [ "${shortname}" == "squad" ]; then elif [ "${shortname}" == "squad" ]; then
ramrequirementgb="2" ramrequirementgb="2"
elif [ "${shortname}" == "sm" ]; then
ramrequirementgb="10"
elif [ "${shortname}" == "st" ]; then elif [ "${shortname}" == "st" ]; then
ramrequirementgb="1" ramrequirementgb="1"
elif [ "${shortname}" == "stn" ]; then elif [ "${shortname}" == "stn" ]; then

2
lgsm/modules/check_tmuxception.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM check_config.sh module # LinuxGSM check_config.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Checks if run from tmux or screen. # Description: Checks if run from tmux or screen.

2
lgsm/modules/check_version.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_version.sh module # LinuxGSM command_version.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Will run update-lgsm if gameserver.sh and modules version does not match # 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. # this will allow gameserver.sh to update - useful for multi instance servers.

2
lgsm/modules/command_backup.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_backup.sh module # LinuxGSM command_backup.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Creates a .tar.gz file in the backup directory. # Description: Creates a .tar.gz file in the backup directory.

2
lgsm/modules/command_check_update.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_check_update.sh module # LinuxGSM command_check_update.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Handles updating of servers. # Description: Handles updating of servers.

2
lgsm/modules/command_console.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_console.sh module # LinuxGSM command_console.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Gives access to the server tmux console. # Description: Gives access to the server tmux console.

2
lgsm/modules/command_debug.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_debug.sh module # LinuxGSM command_debug.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Runs the server without tmux and directly from the terminal. # Description: Runs the server without tmux and directly from the terminal.

2
lgsm/modules/command_details.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_details.sh module # LinuxGSM command_details.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Displays server information. # Description: Displays server information.

2
lgsm/modules/command_dev_clear_modules.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_clear_modules.sh module # LinuxGSM command_dev_clear_modules.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Deletes the contents of the modules dir. # Description: Deletes the contents of the modules dir.

2
lgsm/modules/command_dev_debug.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_debug.sh module # LinuxGSM command_dev_debug.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Dev only: Enables debugging log to be saved to dev-debug.log. # Description: Dev only: Enables debugging log to be saved to dev-debug.log.

2
lgsm/modules/command_dev_detect_deps.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_detect_deps.sh module # LinuxGSM command_dev_detect_deps.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Detects dependencies the server binary requires. # Description: Detects dependencies the server binary requires.

2
lgsm/modules/command_dev_detect_glibc.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_detect_glibc.sh module # LinuxGSM command_dev_detect_glibc.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Automatically detects the version of GLIBC that is required. # Description: Automatically detects the version of GLIBC that is required.
# Can check a file or directory recursively. # Can check a file or directory recursively.

2
lgsm/modules/command_dev_detect_ldd.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_detect_ldd.sh module # LinuxGSM command_dev_detect_ldd.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Automatically detects required deps using ldd. # Description: Automatically detects required deps using ldd.
# Can check a file or directory recursively. # Can check a file or directory recursively.

20
lgsm/modules/command_dev_parse_distro_details.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_parse_distro_details.sh module # LinuxGSM command_dev_parse_distro_details.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Display parsed distro details. # Description: Display parsed distro details.
@ -87,7 +87,7 @@ missing_details=""
# Loop through the distro details and store them. # Loop through the distro details and store them.
for key in "${!server_details[@]}"; do for key in "${!server_details[@]}"; do
value=${server_details[$key]} value=${server_details[$key]}
if [ -n "$value" ]; then if [ -n "$value" ]; then
available_details+="${lightblue}${key}: ${default}${value}\n" available_details+="${lightblue}${key}: ${default}${value}\n"
else else
@ -97,18 +97,18 @@ done
# Sort and output the available distro details. # Sort and output the available distro details.
if [ -n "$available_details" ]; then if [ -n "$available_details" ]; then
echo -e "" echo -e ""
echo -e "${bold}${lightgreen}Available Distro Details${default}" echo -e "${bold}${lightgreen}Available Distro Details${default}"
fn_messages_separator fn_messages_separator
echo -e "${available_details}" | sort echo -e "${available_details}" | sort
fi fi
# Sort and output the missing distro details. # Sort and output the missing distro details.
if [ -n "$missing_details" ]; then if [ -n "$missing_details" ]; then
echo -e "" echo -e ""
echo -e "${lightgreen}Missing or unsupported Distro Details${default}" echo -e "${lightgreen}Missing or unsupported Distro Details${default}"
fn_messages_separator fn_messages_separator
echo -e "${missing_details}" | sort echo -e "${missing_details}" | sort
fi fi
core_exit.sh core_exit.sh

21
lgsm/modules/command_dev_parse_game_details.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_parse_game_details.sh module # LinuxGSM command_dev_parse_game_details.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Display parsed gameserver details. # Description: Display parsed gameserver details.
@ -70,22 +70,20 @@ declare -A server_details=(
['Max Players']="${maxplayers}" ['Max Players']="${maxplayers}"
['Mod Server Port']="${modserverport}" ['Mod Server Port']="${modserverport}"
['OldQueryPortNumber']="${oldqueryportnumber}" ['OldQueryPortNumber']="${oldqueryportnumber}"
['Password']="${password}"
['Port 401']="${port401}" ['Port 401']="${port401}"
['Port IPv6']="${portipv6}" ['Port IPv6']="${portipv6}"
['Port']="${port}" ['Port']="${port}"
['Query Enabled']="${queryenabled}" ['Query Enabled']="${queryenabled}"
['Query HTTP Port']="${queryhttpport}" ['Query HTTP Port']="${httpqueryport}"
['Query HTTPS Port']="${queryhttpsport}" ['Query HTTPS Port']="${httpsqueryport}"
['Query Mode']="${querymode}" ['Query Mode']="${querymode}"
['Query Port GS']="${queryportgs}" ['Query Port GS']="${gamespyqueryport}"
['Query Port']="${queryport}" ['Query Port']="${queryport}"
['Query SSH Port']="${querysshport}" ['Query SSH Port']="${sshqueryport}"
['Queue Enabled']="${queueenabled}" ['Queue Enabled']="${queueenabled}"
['Queue Port']="${queueport}" ['Queue Port']="${queueport}"
['Random Map']="${randommap}" ['Random Map']="${randommap}"
['Raw Port']="${rawport}" ['Raw Port']="${rawport}"
['RC Password']="${rcpassword}"
['RCON Enabled']="${rconenabled}" ['RCON Enabled']="${rconenabled}"
['RCON Password']="${rconpassword}" ['RCON Password']="${rconpassword}"
['RCON Port']="${rconport}" ['RCON Port']="${rconport}"
@ -114,7 +112,6 @@ declare -A server_details=(
['Steamworks Port']="${steamworksport}" ['Steamworks Port']="${steamworksport}"
['Telnet Enabled']="${telnetenabled}" ['Telnet Enabled']="${telnetenabled}"
['Telnet IP']="${telnetip}" ['Telnet IP']="${telnetip}"
['Telnet Password']="${telnetpass}"
['Telnet Password']="${telnetpassword}" ['Telnet Password']="${telnetpassword}"
['Telnet Port']="${telnetport}" ['Telnet Port']="${telnetport}"
['Tickrate']="${tickrate}" ['Tickrate']="${tickrate}"
@ -133,7 +130,7 @@ missing_details=""
# Loop through the server details and store them. # Loop through the server details and store them.
for key in "${!server_details[@]}"; do for key in "${!server_details[@]}"; do
value=${server_details[$key]} value=${server_details[$key]}
if [ -n "$value" ]; then if [ -n "$value" ]; then
available_details+="${lightblue}${key}: ${default}${value}\n" available_details+="${lightblue}${key}: ${default}${value}\n"
else else
@ -144,9 +141,9 @@ done
# Sort and output the available distro details. # Sort and output the available distro details.
if [ -n "$available_details" ]; then if [ -n "$available_details" ]; then
echo -e "" echo -e ""
echo -e "${bold}${lightgreen}Available Gameserver Details${default}" echo -e "${bold}${lightgreen}Available Gameserver Details${default}"
fn_messages_separator fn_messages_separator
echo -e "${available_details}" | sort echo -e "${available_details}" | sort
fi fi
# Output the missing server details if there are any. # Output the missing server details if there are any.

4
lgsm/modules/command_dev_query_raw.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_dev_query_raw.sh module # LinuxGSM command_dev_query_raw.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Raw gamedig output of the server. # Description: Raw gamedig output of the server.
@ -207,7 +207,7 @@ echo -e ""
echo -e "${lightgreen}Gamedig Raw Output${default}" echo -e "${lightgreen}Gamedig Raw Output${default}"
fn_messages_separator fn_messages_separator
echo -e "" 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" fn_print_failure_nl "gamedig not installed"
fi fi
if [ ! "$(command -v jq 2> /dev/null)" ]; then if [ ! "$(command -v jq 2> /dev/null)" ]; then

2
lgsm/modules/command_fastdl.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_fastdl.sh module # LinuxGSM command_fastdl.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Creates a FastDL directory. # Description: Creates a FastDL directory.

2
lgsm/modules/command_install.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_install.sh module # LinuxGSM command_install.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Overall module for the installer. # Description: Overall module for the installer.

2
lgsm/modules/command_install_resources_mta.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_install_resources_mta.sh module # LinuxGSM command_install_resources_mta.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Installs the default resources for Multi Theft Auto. # Description: Installs the default resources for Multi Theft Auto.

2
lgsm/modules/command_mods_install.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_mods_install.sh module # LinuxGSM command_mods_install.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: List and installs available mods along with mods_list.sh and mods_core.sh. # Description: List and installs available mods along with mods_list.sh and mods_core.sh.

2
lgsm/modules/command_mods_remove.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_mods_uninstall.sh module # LinuxGSM command_mods_uninstall.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Uninstall mods along with mods_list.sh and mods_core.sh. # Description: Uninstall mods along with mods_list.sh and mods_core.sh.

2
lgsm/modules/command_mods_update.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_mods_update.sh module # LinuxGSM command_mods_update.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Updates installed mods along with mods_list.sh and mods_core.sh. # Description: Updates installed mods along with mods_list.sh and mods_core.sh.

2
lgsm/modules/command_monitor.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_monitor.sh module # LinuxGSM command_monitor.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Monitors server by checking for running processes # Description: Monitors server by checking for running processes
# then passes to gamedig and gsquery. # then passes to gamedig and gsquery.

2
lgsm/modules/command_postdetails.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_postdetails.sh module # LinuxGSM command_postdetails.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Strips sensitive information out of Details output. # Description: Strips sensitive information out of Details output.

3
lgsm/modules/command_restart.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_restart.sh module # LinuxGSM command_restart.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Restarts the server. # Description: Restarts the server.
@ -10,6 +10,7 @@ commandaction="Restarting"
moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" moduleselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set fn_firstcommand_set
check.sh
info_game.sh info_game.sh
exitbypass=1 exitbypass=1
command_stop.sh command_stop.sh

2
lgsm/modules/command_send.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_send.sh module # LinuxGSM command_send.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Send command to the server tmux console. # Description: Send command to the server tmux console.

2
lgsm/modules/command_skeleton.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_skeleton.sh module # LinuxGSM command_skeleton.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Creates an copy of a game servers directorys. # Description: Creates an copy of a game servers directorys.

2
lgsm/modules/command_sponsor.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_sponsor.sh module # LinuxGSM command_sponsor.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Shows ways to sponsor. # Description: Shows ways to sponsor.

5
lgsm/modules/command_start.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_start.sh module # LinuxGSM command_start.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Starts the server. # Description: Starts the server.
@ -80,7 +80,8 @@ fn_start_tmux() {
# Enable console logging. # Enable console logging.
if [ "${consolelogging}" == "on" ] || [ -z "${consolelogging}" ]; then 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}'" tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec bash -c \"cat | $addtimestamp\" >> '${consolelog}'"
else else
tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'" tmux -L "${socketname}" pipe-pane -o -t "${sessionname}" "exec cat >> '${consolelog}'"

109
lgsm/modules/command_stop.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_stop.sh module # LinuxGSM command_stop.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Stops the server. # Description: Stops the server.
@ -96,8 +96,8 @@ fn_stop_graceful_goldsrc() {
# telnet command for sdtd graceful shutdown. # telnet command for sdtd graceful shutdown.
fn_stop_graceful_sdtd_telnet() { fn_stop_graceful_sdtd_telnet() {
if [ -z "${telnetpass}" ] || [ "${telnetpass}" == "NOT SET" ]; then if [ -z "${telnetpassword}" ] || [ "${telnetpassword}" == "NOT SET" ]; then
sdtd_telnet_shutdown=$(expect -c ' sdtdtelnetshutdown=$(expect -c '
proc abort {} { proc abort {} {
puts "Timeout or EOF\n" puts "Timeout or EOF\n"
exit 1 exit 1
@ -111,14 +111,14 @@ fn_stop_graceful_sdtd_telnet() {
puts "Completed.\n" puts "Completed.\n"
') ')
else else
sdtd_telnet_shutdown=$(expect -c ' sdtdtelnetshutdown=$(expect -c '
proc abort {} { proc abort {} {
puts "Timeout or EOF\n" puts "Timeout or EOF\n"
exit 1 exit 1
} }
spawn telnet '"${telnetip}"' '"${telnetport}"' spawn telnet '"${telnetip}"' '"${telnetport}"'
expect { expect {
"password:" { send "'"${telnetpass}"'\r" } "password:" { send "'"${telnetpassword}"'\r" }
default abort default abort
} }
expect { expect {
@ -143,8 +143,8 @@ fn_stop_graceful_sdtd() {
fn_print_dots "Graceful: telnet: ${telnetip}:${telnetport}" fn_print_dots "Graceful: telnet: ${telnetip}:${telnetport}"
fn_script_log_info "Graceful: telnet: ${telnetip}:${telnetport}" fn_script_log_info "Graceful: telnet: ${telnetip}:${telnetport}"
fn_stop_graceful_sdtd_telnet fn_stop_graceful_sdtd_telnet
completed=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Completed.") completed=$(echo -en "\n ${sdtdtelnetshutdown}" | grep "Completed.")
refused=$(echo -en "\n ${sdtd_telnet_shutdown}" | grep "Timeout or EOF") refused=$(echo -en "\n ${sdtdtelnetshutdown}" | grep "Timeout or EOF")
if [ "${refused}" ]; then if [ "${refused}" ]; then
fn_print_error "Graceful: telnet: ${telnetip}:${telnetport} : " fn_print_error "Graceful: telnet: ${telnetip}:${telnetport} : "
fn_print_fail_eol_nl fn_print_fail_eol_nl
@ -159,7 +159,7 @@ fn_stop_graceful_sdtd() {
if [ "${completed}" ]; then if [ "${completed}" ]; then
for seconds in {1..30}; do for seconds in {1..30}; do
fn_stop_graceful_sdtd_telnet 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 if [ "${refused}" ]; then
fn_print_ok "Graceful: telnet: ${telnetip}:${telnetport} : " fn_print_ok "Graceful: telnet: ${telnetip}:${telnetport} : "
fn_print_ok_eol_nl fn_print_ok_eol_nl
@ -185,7 +185,7 @@ fn_stop_graceful_sdtd() {
fi fi
echo -en "\n" | tee -a "${lgsmlog}" echo -en "\n" | tee -a "${lgsmlog}"
echo -en "Telnet output:" | 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}" echo -en "\n\n" | tee -a "${lgsmlog}"
fi fi
else else
@ -195,6 +195,95 @@ fn_stop_graceful_sdtd() {
fi 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. # Attempts graceful shutdown by sending /save /stop.
fn_stop_graceful_avorion() { fn_stop_graceful_avorion() {
fn_print_dots "Graceful: /save /stop" fn_print_dots "Graceful: /save /stop"
@ -253,6 +342,8 @@ fn_stop_graceful_select() {
fn_stop_graceful_cmd "end" 30 fn_stop_graceful_cmd "end" 30
elif [ "${stopmode}" == "12" ]; then elif [ "${stopmode}" == "12" ]; then
fn_stop_graceful_cmd "shutdown" 30 fn_stop_graceful_cmd "shutdown" 30
elif [ "${stopmode}" == "13" ]; then
fn_stop_graceful_sm
fi fi
} }

2
lgsm/modules/command_test_alert.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_test_alert.sh module # LinuxGSM command_test_alert.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Sends a test alert. # Description: Sends a test alert.

2
lgsm/modules/command_ts3_server_pass.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_ts3_server_pass.sh module # LinuxGSM command_ts3_server_pass.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Changes TS3 serveradmin password. # Description: Changes TS3 serveradmin password.

4
lgsm/modules/command_update.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_update.sh module # LinuxGSM command_update.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Handles updating of servers. # Description: Handles updating of servers.
@ -33,6 +33,8 @@ elif [ "${shortname}" == "vints" ]; then
update_vints.sh update_vints.sh
elif [ "${shortname}" == "ut99" ]; then elif [ "${shortname}" == "ut99" ]; then
update_ut99.sh update_ut99.sh
elif [ "${shortname}" == "xnt" ]; then
update_xnt.sh
else else
update_steamcmd.sh update_steamcmd.sh
fi fi

45
lgsm/modules/command_update_linuxgsm.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_update_linuxgsm.sh module # LinuxGSM command_update_linuxgsm.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Deletes the modules dir to allow re-downloading of modules from GitHub. # Description: Deletes the modules dir to allow re-downloading of modules from GitHub.
@ -15,14 +15,21 @@ check.sh
info_distro.sh info_distro.sh
info_game.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_script_log_info "Updating LinuxGSM"
fn_print_dots "Selecting repo" fn_print_dots "Selecting repo"
fn_script_log_info "Selecting repo" fn_script_log_info "Selecting repo"
# Select remotereponame # Select remotereponame
curl --connect-timeout 10 -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 if [ $? != "0" ]; then
curl --connect-timeout 10 -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 if [ $? != "0" ]; then
fn_print_fail_nl "Selecting repo: Unable to to access GitHub or Bitbucket repositories" 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" fn_script_log_fail "Selecting repo: Unable to to access GitHub or Bitbucket repositories"
@ -39,9 +46,9 @@ fi
# Check linuxsm.sh # Check linuxsm.sh
echo -en "checking ${remotereponame} linuxgsm.sh...\c" echo -en "checking ${remotereponame} linuxgsm.sh...\c"
if [ "${remotereponame}" == "GitHub" ]; then if [ "${remotereponame}" == "GitHub" ]; then
curl --connect-timeout 10 -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 else
curl --connect-timeout 10 -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 fi
if [ $? != "0" ]; then if [ $? != "0" ]; then
fn_print_fail_eol_nl fn_print_fail_eol_nl
@ -51,9 +58,9 @@ if [ $? != "0" ]; then
fi fi
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/linuxgsm.sh"))
else 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 ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/linuxgsm.sh"))
fi fi
if [ "${tmp_script_diff}" != "" ]; then if [ "${tmp_script_diff}" != "" ]; then
@ -119,9 +126,9 @@ fi
echo -en "checking ${remotereponame} config _default.cfg...\c" echo -en "checking ${remotereponame} config _default.cfg...\c"
fn_script_log_info "Checking ${remotereponame} config _default.cfg" fn_script_log_info "Checking ${remotereponame} config _default.cfg"
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
else 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 ${nocache} --connect-timeout 3 -IsfL "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg" 1> /dev/null
fi fi
if [ $? != "0" ]; then if [ $? != "0" ]; then
fn_print_fail_eol_nl fn_print_fail_eol_nl
@ -131,9 +138,9 @@ if [ $? != "0" ]; then
fi fi
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
else 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 ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/config-default/config-lgsm/${gameservername}/_default.cfg"))
fi fi
if [ "${config_file_diff}" != "" ]; then 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" echo -en "checking ${remotereponame} config ${distroid}-${distroversioncsv}.csv...\c"
fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv" fn_script_log_info "Checking ${remotereponame} ${distroid}-${distroversioncsv}.csv"
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv" 1> /dev/null
else else
curl --connect-timeout 10 -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 fi
if [ $? != "0" ]; then if [ $? != "0" ]; then
fn_print_fail_eol_nl fn_print_fail_eol_nl
@ -165,9 +172,9 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fi fi
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
else 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 ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/lgsm/data/${distroid}-${distroversioncsv}.csv"))
fi fi
if [ "${config_file_diff}" != "" ]; then if [ "${config_file_diff}" != "" ]; then
@ -191,9 +198,9 @@ if [ -n "${modulesdir}" ]; then
echo -en "checking ${remotereponame} module ${modulefile}...\c" echo -en "checking ${remotereponame} module ${modulefile}...\c"
github_file_url_dir="lgsm/modules" github_file_url_dir="lgsm/modules"
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -IsfL "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}" 1> /dev/null
else else
curl --connect-timeout 10 -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 fi
if [ $? != 0 ]; then if [ $? != 0 ]; then
fn_print_error_eol_nl fn_print_error_eol_nl
@ -210,9 +217,9 @@ if [ -n "${modulesdir}" ]; then
else else
# compare file # compare file
if [ "${remotereponame}" == "GitHub" ]; then 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 ${nocache} --connect-timeout 3 -s "https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/${github_file_url_dir}/${modulefile}"))
else 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 ${nocache} --connect-timeout 3 -s "https://bitbucket.org/${githubuser}/${githubrepo}/raw/${githubbranch}/${github_file_url_dir}/${modulefile}"))
fi fi
# results # results

2
lgsm/modules/command_validate.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_validate.sh module # LinuxGSM command_validate.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Runs a server validation. # Description: Runs a server validation.

2
lgsm/modules/command_wipe.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM command_backup.sh module # LinuxGSM command_backup.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Wipes server data, useful after updates for some games like Rust. # Description: Wipes server data, useful after updates for some games like Rust.

2
lgsm/modules/compress_unreal2_maps.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM compress_unreal2_maps.sh module # LinuxGSM compress_unreal2_maps.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Compresses unreal maps. # Description: Compresses unreal maps.

2
lgsm/modules/compress_ut99_maps.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM compress_ut99_maps.sh module # LinuxGSM compress_ut99_maps.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Compresses unreal maps. # Description: Compresses unreal maps.

9
lgsm/modules/core_dl.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM core_dl.sh module # LinuxGSM core_dl.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Deals with all downloads for LinuxGSM. # Description: Deals with all downloads for LinuxGSM.
@ -251,7 +251,10 @@ fn_dl_extract() {
fi fi
elif [ "${mime}" == "application/zip" ]; then elif [ "${mime}" == "application/zip" ]; then
if [ -n "${extractsrc}" ]; 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 else
extractcmd=$(unzip -qo -d "${extractdest}" "${local_filedir}/${local_filename}") extractcmd=$(unzip -qo -d "${extractdest}" "${local_filedir}/${local_filename}")
fi fi
@ -390,7 +393,7 @@ fn_fetch_file() {
fi fi
# Trap will remove part downloaded files if canceled. # Trap will remove part downloaded files if canceled.
trap fn_fetch_trap INT 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 # if is large file show progress, else be silent
local exitcode="" local exitcode=""

2
lgsm/modules/core_exit.sh

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# LinuxGSM core_exit.sh module # LinuxGSM core_exit.sh module
# Author: Daniel Gibbs # Author: Daniel Gibbs
# Contributors: http://linuxgsm.com/contrib # Contributors: https://linuxgsm.com/contrib
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Handles exiting of LinuxGSM by running and reporting an exit code. # Description: Handles exiting of LinuxGSM by running and reporting an exit code.

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

Loading…
Cancel
Save