Browse Source

Merge branch 'develop' into feature/add-ts

pull/3795/head
Daniel Gibbs 3 years ago
parent
commit
bf687e808f
  1. 15
      .editorconfig
  2. 18
      .gitattributes
  3. 48
      .github/ISSUE_TEMPLATE/bug-report.md
  4. 95
      .github/ISSUE_TEMPLATE/bug_report.yml
  5. 8
      .github/ISSUE_TEMPLATE/config.yml
  6. 42
      .github/ISSUE_TEMPLATE/feature-request.md
  7. 78
      .github/ISSUE_TEMPLATE/feature_request.yml
  8. 32
      .github/ISSUE_TEMPLATE/new-server-request.md
  9. 57
      .github/ISSUE_TEMPLATE/server_request.yml
  10. 1
      .github/dependabot.yml
  11. 180
      .github/labeler.yml
  12. 31
      .github/pull_request_template.md
  13. 17
      .github/workflows/create-release.yml
  14. 24
      .github/workflows/git-sync.yml
  15. 21
      .github/workflows/labeler.yml
  16. 16
      .github/workflows/lock.yml
  17. 6
      .github/workflows/potential-duplicates.yml
  18. 27
      .github/workflows/trigger-docker-build.yml
  19. 24
      .github/workflows/update-copyright-years-in-license-file.yml
  20. 5
      .github/workflows/version-check.sh
  21. 13
      .github/workflows/version-check.yml
  22. 1
      .gitignore
  23. 3
      .prettierrc.json
  24. 11
      .vscode/extensions.json
  25. 41
      CODE_OF_CONDUCT.md
  26. 142
      CONTRIBUTING.md
  27. 4
      LICENSE.md
  28. 34
      README.md
  29. 2
      lgsm/config-default/config-lgsm/arma3server/_default.cfg
  30. 187
      lgsm/config-default/config-lgsm/armarserver/_default.cfg
  31. 179
      lgsm/config-default/config-lgsm/atsserver/_default.cfg
  32. 6
      lgsm/config-default/config-lgsm/btlserver/_default.cfg
  33. 186
      lgsm/config-default/config-lgsm/ckserver/_default.cfg
  34. 2
      lgsm/config-default/config-lgsm/cmwserver/_default.cfg
  35. 30
      lgsm/config-default/config-lgsm/csgoserver/_default.cfg
  36. 2
      lgsm/config-default/config-lgsm/emserver/_default.cfg
  37. 36
      lgsm/config-default/config-lgsm/ets2server/_default.cfg
  38. 3
      lgsm/config-default/config-lgsm/mcbserver/_default.cfg
  39. 182
      lgsm/config-default/config-lgsm/necserver/_default.cfg
  40. 6
      lgsm/config-default/config-lgsm/ns2server/_default.cfg
  41. 184
      lgsm/config-default/config-lgsm/pc2server/_default.cfg
  42. 3
      lgsm/config-default/config-lgsm/rustserver/_default.cfg
  43. 2
      lgsm/config-default/config-lgsm/sdtdserver/_default.cfg
  44. 2
      lgsm/config-default/config-lgsm/squadserver/_default.cfg
  45. 11
      lgsm/config-default/config-lgsm/stserver/_default.cfg
  46. 2
      lgsm/config-default/config-lgsm/tfcserver/_default.cfg
  47. 2
      lgsm/config-default/config-lgsm/ut99server/_default.cfg
  48. 10
      lgsm/config-default/config-lgsm/vhserver/_default.cfg
  49. 183
      lgsm/config-default/config-lgsm/vpmcserver/_default.cfg
  50. 25
      lgsm/data/almalinux-8.csv
  51. 131
      lgsm/data/almalinux-9.csv
  52. 19
      lgsm/data/centos-7.csv
  53. 26
      lgsm/data/centos-8.csv
  54. 131
      lgsm/data/centos-9.csv
  55. 19
      lgsm/data/debian-10.csv
  56. 23
      lgsm/data/debian-11.csv
  57. 19
      lgsm/data/debian-9.csv
  58. 21
      lgsm/data/rhel-7.csv
  59. 27
      lgsm/data/rhel-8.csv
  60. 131
      lgsm/data/rhel-9.csv
  61. 25
      lgsm/data/rocky-8.csv
  62. 131
      lgsm/data/rocky-9.csv
  63. 255
      lgsm/data/serverlist.csv
  64. 19
      lgsm/data/ubuntu-16.04.csv
  65. 19
      lgsm/data/ubuntu-18.04.csv
  66. 23
      lgsm/data/ubuntu-20.04.csv
  67. 25
      lgsm/data/ubuntu-21.04.csv
  68. 23
      lgsm/data/ubuntu-21.10.csv
  69. 27
      lgsm/data/ubuntu-22.04.csv
  70. 19
      lgsm/functions/README.md
  71. 90
      lgsm/functions/alert.sh
  72. 3
      lgsm/functions/alert_discord.sh
  73. 3
      lgsm/functions/alert_gotify.sh
  74. 3
      lgsm/functions/alert_ifttt.sh
  75. 12
      lgsm/functions/alert_mailgun.sh
  76. 3
      lgsm/functions/alert_pushbullet.sh
  77. 2
      lgsm/functions/alert_pushover.sh
  78. 3
      lgsm/functions/alert_rocketchat.sh
  79. 3
      lgsm/functions/alert_slack.sh
  80. 3
      lgsm/functions/alert_telegram.sh
  81. 24
      lgsm/functions/check.sh
  82. 10
      lgsm/functions/check_config.sh
  83. 93
      lgsm/functions/check_deps.sh
  84. 1
      lgsm/functions/check_executable.sh
  85. 36
      lgsm/functions/check_ip.sh
  86. 4
      lgsm/functions/check_last_update.sh
  87. 6
      lgsm/functions/check_logs.sh
  88. 66
      lgsm/functions/check_permissions.sh
  89. 2
      lgsm/functions/check_root.sh
  90. 2
      lgsm/functions/check_status.sh
  91. 2
      lgsm/functions/check_steamcmd.sh
  92. 6
      lgsm/functions/check_system_requirements.sh
  93. 6
      lgsm/functions/check_tmuxception.sh
  94. 2
      lgsm/functions/check_version.sh
  95. 57
      lgsm/functions/command_backup.sh
  96. 28
      lgsm/functions/command_check_update.sh
  97. 29
      lgsm/functions/command_debug.sh
  98. 4
      lgsm/functions/command_details.sh
  99. 2
      lgsm/functions/command_dev_debug.sh
  100. 36
      lgsm/functions/command_dev_detect_deps.sh

15
.editorconfig

@ -11,3 +11,18 @@ indent_size = 4
trim_trailing_whitespace = true
end_of_line = lf
insert_final_newline = true
# YAML Files
[*.{yml,yaml}]
indent_size = 2
indent_style = space
# JSON Files
[*.{json,json5,webmanifest}]
indent_size = 2
indent_style = space
# BASH Files
[*.{.sh}]
indent_style = tab
indent_size = 4

18
.gitattributes

@ -7,16 +7,16 @@
*.so.6 binary
# Custom for Visual Studio
*.cs diff=csharp
*.cs diff=csharp
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

48
.github/ISSUE_TEMPLATE/bug-report.md

@ -1,48 +0,0 @@
---
name: Bug Report
about: Found a bug? Raise a report.
title: "[BUG]"
labels: 'type: bug'
assignees: ''
---
Issues raised here are **ONLY** for:
* LinuxGSM bugs.
* Feature suggestions.
* Code contributions.
Issues raised here are **NOT** for:
* General support.
* Specific game server issues (e.g CS:GO, TF2).
* Dedicated server issues (e.g Ubuntu, CentOS).
* Anything not directly related to LinuxGSM development.
For general support visit the **[LinuxGSM-Support](https://linuxgsm.com/support)**.
***Please use the template below, deleting the above text***
## User Story
As a [user description], I want [desired action] so that [desired outcome].
## Basic info
* **Distro:** [Ubuntu 18.04]
* **Game:** [Garry's Mod]
* **Command:** [Monitor]
* **LinuxGSM version:** [v20.1.3]
## Further Information
A clear description of what the bug is and any ideas on how to resolve it. Plus any further context that might be relevant to the issue.
## To Reproduce
Steps to reproduce the behaviour:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
## Expected behaviour

95
.github/ISSUE_TEMPLATE/bug_report.yml

@ -0,0 +1,95 @@
---
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["type: bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: user-story
attributes:
label: User story
description: As a [user description], I want [desired action] so that [desired outcome].
placeholder: As a [user description], I want [desired action] so that [desired outcome].
validations:
required: true
- type: input
id: game
attributes:
label: Game
description: What game server are you hosting?
placeholder: Valheim
validations:
required: true
- type: dropdown
id: distro
attributes:
label: Linux distro
multiple: true
options:
- Ubuntu 22.04
- Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
- Debian 11
- Debian 10
- Debian 9
- RedHat 9
- RedHat 8
- RedHat 7
- Other
validations:
required: true
- type: dropdown
id: command
attributes:
label: Command
multiple: true
options:
- "command: start"
- "command: stop"
- "command: restart"
- "command: monitor"
- "command: details"
- "command: update"
- "command: validate"
- "command: backup"
- "command: mods-install"
- "command: mods-update"
- "command: mods-remove"
- "command: debug"
- "command: console"
- "command: install"
- "command: auto-update"
- "command: update-lgsm"
- "command: wipe"
- "command: send"
validations:
required: true
- type: textarea
id: further-info
attributes:
label: Further information
description: A clear description of what the bug is, any ideas on how to resolve it and any further context that might be relevant to the issue.
placeholder: Tell us what you see!
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Steps to reproduce the behaviour.
placeholder: |
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

8
.github/ISSUE_TEMPLATE/config.yml

@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Ask a question
about: Ask questions and discuss with other users of LinuxGSM.
url: https://github.com/GameServerManagers/LinuxGSM/discussions
- name: Discord Server
about: Join the LinuxGSM Discord community server. Discuss your LinuxGSM setup, get help and advice
url: https://linuxgsm.com/discord

42
.github/ISSUE_TEMPLATE/feature-request.md

@ -1,42 +0,0 @@
---
name: Feature Request
about: Suggest an idea for LinuxGSM.
title: "[FEATURE]"
labels: 'type: feature request'
assignees: ''
---
Issues raised here are **ONLY** for:
* LinuxGSM bugs.
* Feature suggestions.
* Code contributions.
Issues raised here are **NOT** for:
* General support.
* Specific game server issues (e.g CS:GO, TF2).
* Dedicated server issues (e.g Ubuntu, CentOS).
* Anything not directly related to LinuxGSM development.
For general support visit the **[LinuxGSM Support](https://linuxgsm.com/support)** page.
***Please use the template below, deleting the above text***
## User Story
As a [user description], I want [desired action] so that [desired outcome].
## Basic info
* **Distro:** [Ubuntu 20.04]
* **Game:** [Garry's Mod]
* **Command:** [Monitor]
* **LinuxGSM version:** [v20.1.3]
## Further Information
A clear description of what the feature is and any ideas on how to achieve this.
## Further Reading
Provide any useful documentation or resources that might help.

78
.github/ISSUE_TEMPLATE/feature_request.yml

@ -0,0 +1,78 @@
---
name: Feature Request
description: Suggest a feature
title: "[Feature]: "
labels: ["type: feature"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: input
id: user-story
attributes:
label: User story
description: As a [user description], I want [desired action] so that [desired outcome].
placeholder: As a [user description], I want [desired action] so that [desired outcome].
validations:
required: true
- type: input
id: game
attributes:
label: Game
description: What game server are you hosting?
placeholder: Valheim
validations:
required: false
- type: dropdown
id: distro
attributes:
label: Linux distro
multiple: true
options:
- Ubuntu 22.04
- Ubuntu 20.04
- Ubuntu 18.04
- Ubuntu 16.04
- Debian 11
- Debian 10
- Debian 9
- RedHat 9
- RedHat 8
- RedHat 7
- Other
validations:
required: false
- type: dropdown
id: command
attributes:
label: Command
multiple: true
options:
- "command: start"
- "command: stop"
- "command: restart"
- "command: monitor"
- "command: details"
- "command: update"
- "command: validate"
- "command: backup"
- "command: mods-install"
- "command: mods-update"
- "command: mods-remove"
- "command: debug"
- "command: console"
- "command: install"
- "command: auto-update"
- "command: update-lgsm"
- "command: wipe"
- "command: send"
validations:
required: true
- type: textarea
id: further-info
attributes:
label: Further information
description: A clear description of what the feature is and any ideas on how to achieve this.
validations:
required: true

32
.github/ISSUE_TEMPLATE/new-server-request.md

@ -1,32 +0,0 @@
---
name: New Server Request
about: Suggest a new game server to be added.
title: "[Server Request]"
labels: 'type: game server request'
assignees: ''
---
## What game server would you like to add?
[game server]
## Can you link to any tutorials or guides?
Provide any useful documentation or resources that might help.
## Is the server on Steam?
* [ ] Yes
* [ ] No
If yes Use SteamDB to get the appid. (https://steamdb.info).
[appid]
## Is the server supported on Linux?
We only support Linux servers and do **not** support Wine.
* [ ] Yes
* [ ] No

57
.github/ISSUE_TEMPLATE/server_request.yml

@ -0,0 +1,57 @@
---
name: Server Request
description: Suggest a new game server to be added
title: "[Server Request]: "
labels: ["type: game server request"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this game server!
- type: input
id: game-server
attributes:
label: Game server
description: What game server would you like to add?
validations:
required: true
- type: checkboxes
id: on-linux
attributes:
label: Linux support
description: Does this game server have Linux support? (not wine)
options:
- label: "Yes"
validations:
required: true
- type: dropdown
id: on-steam
attributes:
label: Steam
description: Is this game server available on Steam?
options:
- "Yes"
- "No"
validations:
required: true
- type: input
id: steam-id
attributes:
label: Steam appid
description: What is the Steam appid of the game server? Use SteamDB to get the appid. (https://steamdb.info).
placeholder: "892970"
validations:
required: false
- type: textarea
id: guides
attributes:
label: Guides
description: Links to guides on how to install the game server
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com)
options:
- label: I agree to follow this project's Code of Conduct
required: true

1
.github/dependabot.yml

@ -1,7 +1,6 @@
# Set update schedule for GitHub Actions
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:

180
.github/labeler.yml

@ -1,98 +1,160 @@
# Add/remove 'critical' label if issue contains the words 'urgent' or 'critical'
# Type
"type: game server request":
- '/(Server Request)/i'
"type: bug":
- '/(bug)/i'
"type: feature request":
- '/(feature)/i'
# Commands
"command: backup":
- '/(backup)/i'
- "/(backup)/i"
"command: console":
- '/(console|tmux)/i'
- "/(console|tmux)/i"
"command: debug":
- '/(debug)/i'
- "/(command: debug)/i"
"command: details":
- '/(details)/i'
- "/(command: details)/i"
"command: fast-dl":
- '/(fast-dl|fastdl)/i'
- "/(fast-dl|fastdl)/i"
"command: install":
- '/(install)/i'
- "/(install)/i"
"command: mods":
- '/(mods)/i'
- "/(command: mods)/i"
"command: monitor":
- '/(monitor)/i'
- "/(command: monitor)/i"
"command: post-details":
- '/(post-details)/i'
- "/(command: post-details)/i"
"command: restart":
- '/(restart)/i'
- "/(command: restart)/i"
"command: send":
- '/(send)/i'
- "/(command: send)/i"
"command: skeleton":
- '/(skeleton)/i'
- "/(command: skeleton)/i"
"command: start":
- '/(start)/i'
- "/(command: start)/i"
"command: stop":
- '/(stop)/i'
- "/(command: stop)/i"
"command: update-lgsm":
- '/(update-lgsm)/i'
- "/(update-lgsm)/i"
"command: update":
- '/(update)/i'
- "/(command: update)/i"
"command: validate":
- '/(validate)/i'
- "/(validate)/i"
"command: wipe":
- '/(wipe)/i'
- "/(wipe)/i"
# Distros
"distro: AlmaLinux":
- '/(Alma)/i'
- "/(Alma)/i"
"distro: Arch Linux":
- '/(Arch)/i'
- "/(Arch Linux)/i"
"distro: CentOS":
- '/(CentOS)/i'
- "/(CentOS)/i"
"distro: Debian":
- '/(Debian)/i'
- "/(Debian)/i"
"distro: Fedora":
- '/(Fedora)/i'
- "/(Fedora)/i"
"distro: openSUSE":
- '/(openSUSE|suse)/i'
- "/(openSUSE|suse)/i"
"distro: Rocky Linux":
- '/(Rocky)/i'
- "/(Rocky)/i"
"distro: Slackware":
- '/(Slackware)/i'
- "/(Slackware)/i"
"distro: Ubuntu":
- '/(Ubuntu)/i'
- "/(Ubuntu)/i"
# Games
"game: 7 Days to Die":
- "/(7 Days to Die|sdtd)/i"
"game: Ark: Survival Evolved":
- "/(Ark: Survival Evolved|Ark)/i"
"game: ARMA 3":
- "/(ARMA 3|ARMA3)/i"
"game: Assetto Corsa":
- "/(Assetto Corsa)/i"
"game: Avorion":
- "/(Avorion)/i"
"game: Ballistic Overkill":
- "/(Ballistic Overkill)/i"
"game: BATTALION: Legacy":
- "/(BATTALION: Legacy)/i"
"game: Barotrauma":
- "/(Barotrauma)/i"
"game: Counter-Strike: Global Offensive":
- "/(Counter-Strike: Global Offensive|CS:GO|csgo)/i"
"game: Counter-Strike: Source":
- "/(Counter-Strike: Source|CS:S)/i"
"game: Counter-Strike 1.6":
- "/(Counter-Strike 1.6|Counter Strike 1.6|CS 1.6|cs1.6)/i"
"game: Dayz":
- "/(Dayz)/i"
"game: Don't Starve Together":
- "/(Don't Starve Together|Dont Starve Together|DST)/i"
"game: Eco":
- "/(^Eco$)/i"
"game: Factorio":
- "/(Factorio)/i"
"game: Garry's Mod":
- "/(Garry's Mod|Garrys Mod|GMod)/i"
"game: Insurgency: Sandstorm":
- "/(Insurgency: Sandstorm|Insurgency)/i"
"game: Killing Floor 2":
- "/(Killing Floor 2|KF2)/i"
"game: Left 4 Dead 2":
- "/(Left 4 Dead 2|L4D2)/i"
"game: Minecraft":
- "/(minecraft)((?!bedrock).)*$/i"
"game: Minecraft Bedrock":
- "/(Bedrock)/i"
"game: Mumble":
- "/(Mumble)/i"
"game: Project Zomboid":
- "/(Project Zomboid)/i"
"game: Quake 3":
- "/(Quake 3|Q3A|q3)/i"
"game: Rising World":
- "/(Rising World)/i"
"game: Satisfactory":
- "/(Satisfactory)/i"
"game: Squad":
- "/(Squad)/i"
"game: Starbound":
- "/(Starbound)/i"
"game: Stationeers":
- "/(Stationeers)/i"
"game: Teamspeak 3":
- "/(Teamspeak 3|ts3)/i"
"game: Rust":
- "/(Rust)/i"
"game: Unturned":
- "/(Unturned)/i"
"game: Unreal Tournament 99":
- "/(Unreal Tournament 99|ut99)/i"
"game: Unreal Tournament 2004":
- "/(Unreal Tournament 2004|ut2k4)/i"
"game: Unreal Tournament 3":
- "/(Unreal Tournament 3|ut3)/i"
"game: Valheim":
- "/(Valheim)/i"
# Info
"info: alerts":
- '/(alert)/i'
- "/(alert)/i"
"info: dependency":
- '/(dependency|deps)/i'
- "/(dependency|deps)/i"
"info: docker":
- '/(docker)/i'
- "/(docker)/i"
"info: docs":
- '/(documentation|docs)/i'
- "/(documentation|^docs$)/i"
"info: email":
- '/(postfix|sendmail|exim|smtp)/i'
- "/(postfix|sendmail|exim|smtp)/i"
"info: query":
- '/(gamedig|gsquery)/i'
- "/(gamedig|gsquery)/i"
"info: steamcmd":
- '/(steamcmd)/i'
- "/(steamcmd)/i"
"info: systemd":
- '/(systemd)/i'
- "/(systemd)/i"
"info: tmux":
- '/(tmux)/i'
- "/(tmux)/i"
"info: website":
- '/(website)/i'
# Games
"game: Ark: Survival Evolved":
- '/(Ark: Survival Evolved|Ark)/i'
"game: ARMA 3":
- '/(ARMA 3)/i'
"game: Assetto Corsa":
- '/(Assetto Corsa)/i'
"game: Avorion":
- '/(Avorion)/i'
"game: Ballistic Overkill":
- '/(Ballistic Overkill)/i'
"game: Barotrauma":
- '/(Barotrauma)/i'
- "/(website)/i"
# Type
"type: game server request":
- "/(Server Request)/i"
"type: bug":
- "/(bug)/i"
"type: feature request":
- "/(feature)/i"

31
.github/pull_request_template.md

@ -6,29 +6,30 @@ Fixes #[issue]
## Type of change
* [ ] Bug fix (a change which fixes an issue).
* [ ] New feature (change which adds functionality).
* [ ] New Server (new server added).
* [ ] Refactor (restructures existing code).
* [ ] Comment update (typo, spelling, explanation, examples, etc).
- [ ] Bug fix (a change which fixes an issue).
- [ ] New feature (a change which adds functionality).
- [ ] New Server (new server added).
- [ ] Refactor (restructures existing code).
- [ ] Comment update (typo, spelling, explanation, examples, etc).
## Checklist
PR will not be merged until all steps are complete.
* [ ] This pull request links to an issue.
* [ ] This pull request uses the `develop` branch as its base.
* [ ] This pull request Subject follows the Conventional Commits standard.
* [ ] This code follows the style guidelines of this project.
* [ ] I have performed a self-review of my code.
* [ ] I have checked that this code is commented where required.
* [ ] I have provided a detailed with enough description of this PR.
* [ ] I have checked If documentation needs updating.
- [ ] This pull request links to an issue.
- [ ] This pull request uses the `develop` branch as its base.
- [ ] This pull request subject follows the Conventional Commits standard.
- [ ] This code follows the style guidelines of this project.
- [ ] I have performed a self-review of my code.
- [ ] I have checked that this code is commented where required.
- [ ] I have provided a detailed enough description of this PR.
- [ ] I have checked if documentation needs updating.
## Documentation
If documentation does need updating either update it by creating a PR (preferred) or request a documentation update.
* User docs: https://github.com/GameServerManagers/LinuxGSM-Docs
* Dev docs: https://github.com/GameServerManagers/LinuxGSM-Dev-Docs
- User docs: https://github.com/GameServerManagers/LinuxGSM-Docs
- Dev docs: https://github.com/GameServerManagers/LinuxGSM-Dev-Docs
**Thank you for your Pull Request!**

17
.github/workflows/create-release.yml

@ -1,17 +0,0 @@
name: Release Drafter
on:
push:
# branches to consider in the event; optional, defaults to all
branches:
- master
jobs:
update_release_draft:
runs-on: ubuntu-latest
steps:
# Drafts your next Release notes as Pull Requests are merged into "master"
- uses: release-drafter/[email protected]
with:
config-name: release-drafter.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

24
.github/workflows/git-sync.yml

@ -10,16 +10,16 @@ jobs:
GitHub-to-Bitbucket:
runs-on: ubuntu-latest
steps:
- name: webfactory/ssh-agent@v0.5.3
uses: webfactory/ssh-agent@v0.5.3
with:
ssh-private-key: ${{ secrets.BITBUCKET_SECRET }}
- name: webfactory/ssh-agent@v0.7.0
uses: webfactory/ssh-agent@v0.7.0
with:
ssh-private-key: ${{ secrets.BITBUCKET_SECRET }}
- name: wei/[email protected]
uses: wei/[email protected]
with:
ssh_private_key: ${{ secrets.BITBUCKET_SECRET }}
source_repo: "https://github.com/GameServerManagers/LinuxGSM"
source_branch: "refs/heads/*"
destination_repo: "[email protected]:GameServerManagers/linuxgsm.git"
destination_branch: "refs/heads/*"
- name: wei/[email protected]
uses: wei/[email protected]
with:
ssh_private_key: ${{ secrets.BITBUCKET_SECRET }}
source_repo: "https://github.com/GameServerManagers/LinuxGSM"
source_branch: "refs/heads/*"
destination_repo: "[email protected]:GameServerManagers/linuxgsm.git"
destination_branch: "refs/heads/*"

21
.github/workflows/labeler.yml

@ -2,14 +2,23 @@ name: "Issue Labeler"
on:
issues:
types: [opened, edited]
pull_request:
types: [opened, edited]
permissions:
contents: read
jobs:
triage:
permissions:
contents: read # for github/issue-labeler to get repo contents
issues: write # for github/issue-labeler to create or remove labels
runs-on: ubuntu-latest
steps:
- uses: github/[email protected]
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/labeler.yml
not-before:
enable-versioned-regex: 0
- uses: github/[email protected]
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: .github/labeler.yml
not-before:
enable-versioned-regex: 0
include-title: 1

16
.github/workflows/lock.yml

@ -1,21 +1,27 @@
name: 'Lock Threads'
name: "Lock Threads"
on:
schedule:
- cron: '0 0 * * *'
- cron: "0 0 * * *"
permissions:
contents: read
jobs:
lock:
permissions:
issues: write # for dessant/lock-threads to lock issues
pull-requests: write # for dessant/lock-threads to lock PRs
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v3
- uses: dessant/lock-threads@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
issue-lock-comment: >
issue-comment: >
This issue has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new issue for related bugs.
pr-lock-comment: >
pr-comment: >
This pull request has been automatically locked since there
has not been any recent activity after it was closed.
Please open a new issue for related bugs.

6
.github/workflows/potential-duplicates.yml

@ -12,15 +12,15 @@ jobs:
# Issue title filter work with anymatch https://www.npmjs.com/package/anymatch.
# Any matched issue will stop detection immediately.
# You can specify multi filters in each line.
filter: ''
filter: ""
# Exclude keywords in title before detecting.
exclude: ''
exclude: ""
# Label to set, when potential duplicates are detected.
label: potential-duplicate
# Get issues with state to compare. Supported state: 'all', 'closed', 'open'.
state: all
# If similarity is higher than this threshold([0,1]), issue will be marked as duplicate.
threshold: 0.6
threshold: 0.8
# Reactions to be add to comment when potential duplicates are detected.
# Available reactions: "-1", "+1", "confused", "laugh", "heart", "hooray", "rocket", "eyes"
#reactions: 'eyes, confused'

27
.github/workflows/trigger-docker-build.yml

@ -0,0 +1,27 @@
name: Trigger Docker Build
on:
release:
types:
- published
jobs:
trigger_build_docker-linuxgsm:
name: Trigger Build docker-linuxgsm
runs-on: ubuntu-latest
steps:
- uses: convictional/[email protected]
with:
owner: GameServerManagers
repo: docker-linuxgsm
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
workflow_file_name: docker-publish.yml
trigger_build_docker-gameserver:
name: Trigger Build docker-linuxgsm
runs-on: ubuntu-latest
steps:
- uses: convictional/[email protected]
with:
owner: GameServerManagers
repo: docker-gameserver
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
workflow_file_name: docker-publish.yml

24
.github/workflows/update-copyright-years-in-license-file.yml

@ -0,0 +1,24 @@
---
name: Update copyright year(s) in license file
on:
workflow_dispatch:
schedule:
- cron: "0 3 1 1 *" # 03:00 AM on January 1
jobs:
update-license-year:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: FantasticFiasco/action-update-license-year@v2
with:
token: ${{ secrets.GITHUB_TOKEN }}
path: LICENSE.md
- name: Merge pull request
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr merge --merge --delete-branch

5
.github/workflows/version-check.sh

@ -1,5 +1,6 @@
version=$(grep "version=" linuxgsm.sh | sed -e 's/version//g'| tr -d '="')
modulesversion=$(grep "modulesversion=" lgsm/functions/core_functions.sh | sed -e 's/modulesversion//g'| tr -d '="')
#!/bin/bash
version=$(grep "version=" linuxgsm.sh | sed -e 's/version//g' | tr -d '="')
modulesversion=$(grep "modulesversion=" lgsm/functions/core_functions.sh | sed -e 's/modulesversion//g' | tr -d '="')
if [ "${version}" != "${modulesversion}" ]; then
echo "Error! LinuxGSM version mismatch"

13
.github/workflows/version-check.yml

@ -7,6 +7,9 @@ name: Version Check
on: push
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
permissions:
contents: read
jobs:
# This workflow contains a single job called "build"
Version-Check:
@ -15,9 +18,9 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3
# Runs a single command using the runners shell
- name: compare versions
run: chmod +x .github/workflows/version-check.sh; .github/workflows/version-check.sh
# Runs a single command using the runners shell
- name: compare versions
run: chmod +x .github/workflows/version-check.sh; .github/workflows/version-check.sh

1
.gitignore

@ -1,2 +1,3 @@
*.db
.idea
/node_modules

3
.prettierrc.json

@ -0,0 +1,3 @@
{
"plugins": ["prettier-plugin-sh"]
}

11
.vscode/extensions.json

@ -0,0 +1,11 @@
{
"recommendations": [
"ms-python.python",
"editorconfig.editorconfig",
"yzhang.markdown-all-in-one",
"esbenp.prettier-vscode",
"timonwong.shellcheck",
"foxundermoon.shell-format",
"redhat.vscode-yaml"
]
}

41
CODE_OF_CONDUCT.md

@ -1,4 +1,3 @@
# Contributor Covenant Code of Conduct
## Our Pledge
@ -18,24 +17,24 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
@ -107,7 +106,7 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
@ -120,14 +119,14 @@ version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
[Mozilla's code of conduct enforcement ladder][mozilla coc].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available
[https://www.contributor-covenant.org/faq][faq]. Translations are available
at [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[mozilla coc]: https://github.com/mozilla/diversity
[faq]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

142
CONTRIBUTING.md

@ -6,32 +6,33 @@ The following is a set of guidelines for contributing to LinuxGSM, which are hos
## Table of Contents
[Contributing to LinuxGSM](#contributing-to-linuxgsm)
* [Table of Contents](#table-of-contents)
* [Code of Conduct](#code-of-conduct)
* [🎉 Bug/Enhancement Contributions 🐛](#bug-enhancement-contributions)
+ [🐛Reporting Bugs](#reporting-bugs)
- [Before Submitting A Bug Report](#before-submitting-a-bug-report)
- [How Do I Submit A (Good) Bug Report?](#how-do-i-submit-a--good--bug-report-)
+ [🎉Suggesting Features](#suggesting-features)
- [Before Submitting An Feature Suggestion](#before-submitting-an-feature-suggestion)
- [How Do I Submit A (Good) Feature Suggestion?](#how-do-i-submit-a--good--feature-suggestion-)
+ [🎮 Game Server Requests](#game-server-requests)
- [Before Submitting a Game Server Request](#before-submitting-a-game-server-request)
- [How Do I Submit A (Good) Game Server Request?](#how-do-i-submit-a--good--game-server-request-)
+ [🎮 Game Server Specific Issues](#game-server-specific-issues)
* [💻 Code Contributions](#code-contributions)
+ [Pull Requests](#pull-requests)
- [Pull Request naming convention](#pull-request-naming-convention)
+ [Testing](#testing)
- [Pull Request Status Checks](#pull-request-status-checks)
- [Test Environment](#test-environment)
+ [:wine_glass: Styleguides](#-wine-glass--styleguides)
- [Git Commit Messages](#git-commit-messages)
- [BASH Styleguide](#bash-styleguide)
* [:blue_book: Document Contributions](#-blue-book--document-contributions)
+ [Documentation Styleguide](#documentation-styleguide)
* [Issue and Pull Request Labels](#issue-and-pull-request-labels)
[Contributing to LinuxGSM](#contributing-to-linuxgsm)
- [Table of Contents](#table-of-contents)
- [Code of Conduct](#code-of-conduct)
- [🎉 Bug/Enhancement Contributions 🐛](#bug-enhancement-contributions)
- [🐛Reporting Bugs](#reporting-bugs)
- [Before Submitting A Bug Report](#before-submitting-a-bug-report)
- [How Do I Submit A (Good) Bug Report?](#how-do-i-submit-a--good--bug-report-)
- [🎉Suggesting Features](#suggesting-features)
- [Before Submitting An Feature Suggestion](#before-submitting-an-feature-suggestion)
- [How Do I Submit A (Good) Feature Suggestion?](#how-do-i-submit-a--good--feature-suggestion-)
- [🎮 Game Server Requests](#game-server-requests)
- [Before Submitting a Game Server Request](#before-submitting-a-game-server-request)
- [How Do I Submit A (Good) Game Server Request?](#how-do-i-submit-a--good--game-server-request-)
- [🎮 Game Server Specific Issues](#game-server-specific-issues)
- [💻 Code Contributions](#code-contributions)
- [Pull Requests](#pull-requests)
- [Pull Request naming convention](#pull-request-naming-convention)
- [Testing](#testing)
- [Pull Request Status Checks](#pull-request-status-checks)
- [Test Environment](#test-environment)
- [:wine_glass: Styleguides](#-wine-glass--styleguides)
- [Git Commit Messages](#git-commit-messages)
- [BASH Styleguide](#bash-styleguide)
- [:blue_book: Document Contributions](#-blue-book--document-contributions)
- [Documentation Styleguide](#documentation-styleguide)
- [Issue and Pull Request Labels](#issue-and-pull-request-labels)
## Code of Conduct
@ -43,24 +44,24 @@ This project and everyone participating in it is governed by the [LinuxGSM Code
This section guides you through submitting a bug report for LinuxGSM. Following these guidelines help maintainers and the community understand your report 📝, reproduce the behaviour💻, and find any related reports 🔎.
Before creating bug reports, please check [this list](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#before-submitting-a-bug-report) as you might find out that you don’t need to create one. When you are creating a bug report, please [include as many details as possible](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#how-do-i-submit-a-good-bug-report). Fill out [the required template]([https://github.com/GameServerManagers/LinuxGSM/issues/new/choose](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose)), the information it asks for helps us resolve issues faster.
Before creating bug reports, please check [this list](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#before-submitting-a-bug-report) as you might find out that you don’t need to create one. When you are creating a bug report, please [include as many details as possible](https://github.com/GameServerManagers/linuxgsm/blob/master/CONTRIBUTING.md#how-do-i-submit-a-good-bug-report). Fill out [the required template](<[https://github.com/GameServerManagers/LinuxGSM/issues/new/choose](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose)>), the information it asks for helps us resolve issues faster.
#### Before Submitting A Bug Report
* **Check the [documentation](https://docs.linuxgsm.com).** You might be able to find the cause of the problem and fix things yourself.
* **Check the** [**support page**](https://linuxgsm.com/support) for links to other support options.
* **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
- **Check the [documentation](https://docs.linuxgsm.com).** You might be able to find the cause of the problem and fix things yourself.
- **Check the** [**support page**](https://linuxgsm.com/support) for links to other support options.
- **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the problem has already been reported. If it has **and the issue is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
#### How Do I Submit A (Good) Bug Report?
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information by filling in [the issues form](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose).
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Complete the user story** to give a summary of the issue.
* **Provide basic info** to help us understand the context of the issue.
* **Provide further info** to give specifics and more detail.
* **Give steps to reproduce** the issue, allowing developers to follow steps that lead to the issue.
* **Explain what you expect** to happen, so we know what you think should occur.
- **Use a clear and descriptive title** for the issue to identify the problem.
- **Complete the user story** to give a summary of the issue.
- **Provide basic info** to help us understand the context of the issue.
- **Provide further info** to give specifics and more detail.
- **Give steps to reproduce** the issue, allowing developers to follow steps that lead to the issue.
- **Explain what you expect** to happen, so we know what you think should occur.
### 🎉Suggesting Features
@ -68,31 +69,34 @@ This section guides you through submitting a feature suggestion for LinuxGSM, in
#### Before Submitting An Feature Suggestion
* **Check the** [**documentation**](https://docs.linuxgsm.com/%5D(https://docs.linuxgsm.com/)) to confirm that the enhancement doesn’t already exist.
* **Check your** [**LinuxGSM version**](https://docs.linuxgsm.com/commands/update-lgsm)**.** A newer version of LinuxGSM may already have your enhancement.
* **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the enhancement has already been suggested. If it has **and the enhancement is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
- **Check the** [**documentation**](<https://docs.linuxgsm.com/%5D(https://docs.linuxgsm.com/)>) to confirm that the enhancement doesn’t already exist.
- **Check your** [**LinuxGSM version**](https://docs.linuxgsm.com/commands/update-lgsm)**.** A newer version of LinuxGSM may already have your enhancement.
- **Perform a** [**cursory search**](https://github.com/search?q=org:GameServerManagers%20type:issues&type=Issues) to see if the enhancement has already been suggested. If it has **and the enhancement is still open**, add a comment to the existing issue and give it a thumbs up instead of opening a new one.
#### How Do I Submit A (Good) Feature Suggestion?
Features are tracked as [GitHub issues](https://guides.github.com/features/issues/). Create an issue and provide the following information by filling in [the issues form](https://github.com/GameServerManagers/LinuxGSM/issues/new/choose).
* **Use a clear and descriptive title** for the issue to identify the problem.
* **Complete the user story** to give a summary of the issue.
* **Provide basic info** to help us understand the context of the enhancement.
* **Provide further info** to give specifics and more detail.
* **Provide any further reading** materials that might assist in developing the enhancement.
- **Use a clear and descriptive title** for the issue to identify the problem.
- **Complete the user story** to give a summary of the issue.
- **Provide basic info** to help us understand the context of the enhancement.
- **Provide further info** to give specifics and more detail.
- **Provide any further reading** materials that might assist in developing the enhancement.
### 🎮 Game Server Requests
This section guides you through submitting a game server request for LinuxGSM, Following these guidelines help maintainers and the community understand your game server request 📝.
#### Before Submitting a Game Server Request
* **Check for existing** [**game server requests**](https://github.com/GameServerManagers/LinuxGSM/labels/type%3A%20game%20server%20request) to see if the new game server has already been suggested. If it has **and if the new game server is still open**, give it a thumbs up.
* **Check the game server is supported on Linux**, this does not include Wine servers which we do not support.
- **Check for existing** [**game server requests**](https://github.com/GameServerManagers/LinuxGSM/labels/type%3A%20game%20server%20request) to see if the new game server has already been suggested. If it has **and if the new game server is still open**, give it a thumbs up.
- **Check the game server is supported on Linux**, this does not include Wine servers which we do not support.
#### How Do I Submit A (Good) Game Server Request?
* The title should be as follows: **[Server Request] Game Name**
* **Provide Steam App ID** if applicable
* **Supply any documentation/how-to guides** for the game server.
- The title should be as follows: **[Server Request] Game Name**
- **Provide Steam App ID** if applicable
- **Supply any documentation/how-to guides** for the game server.
### 🎮 Game Server Specific Issues
@ -110,10 +114,10 @@ A [list](https://docs.linuxgsm.com/support/game-server) of known game developer
The process described here has several goals:
* Maintain LinuxGSM quality.
* Fix problems that are important to users.
* Engage the community in working toward the best possible LinuxGSM.
* Enable a sustainable system for LinuxGSM maintainers to review contributions.
- Maintain LinuxGSM quality.
- Fix problems that are important to users.
- Engage the community in working toward the best possible LinuxGSM.
- Enable a sustainable system for LinuxGSM maintainers to review contributions.
Please follow these steps to have your contribution considered by the maintainers:
@ -135,18 +139,18 @@ If applied, this commit will _your subject line here_
For example:
* If applied, this commit will **refactor subsystem X for readability**
* If applied, this commit will **update getting started documentation**
* If applied, this commit will **remove deprecated methods**
* If applied, this commit will **release version 1.0.0**
* If applied, this commit will **merge pull request #123 from user/branch**
- If applied, this commit will **refactor subsystem X for readability**
- If applied, this commit will **update getting started documentation**
- If applied, this commit will **remove deprecated methods**
- If applied, this commit will **release version 1.0.0**
- If applied, this commit will **merge pull request #123 from user/branch**
Notice how this doesn’t work for the other non-imperative forms:
* If applied, this commit will **fixed bug with Y**
* If applied, this commit will **change the behaviour of X**
* If applied, this commit will **more fixes for broken stuff**
* If applied, this commit will **sweet new API methods**
- If applied, this commit will **fixed bug with Y**
- If applied, this commit will **change the behaviour of X**
- If applied, this commit will **more fixes for broken stuff**
- If applied, this commit will **sweet new API methods**
Below is an example of the subject line for a pull request:
@ -157,10 +161,13 @@ Below is an example of the subject line for a pull request:
### Testing
#### Pull Request Status Checks
When a Pull Request is submitted, a series of status check tests are conducted. These tests will assess the code quality, complete CI tests etc. To get your PR merged these status checks must pass.
When a Pull Request is submitted, a series of status check tests are conducted. These tests will assess the code quality, complete CI tests etc. To get your PR merged these status checks must pass.
#### Test Environment
It is recommended that you have a testing environment available to test your code during development. To test your own code you must change some variables within the `linuxgsm.sh` file. This will force the use of your own code branch.
```bash
## GitHub Branch Select
# Allows for the use of different function files
@ -203,10 +210,11 @@ Highlights the LinuxGSM command the Issue/PR relates to.
Labels to help pinpoint what the issue or PR relates to.
variants:
* _distro_
* _engine_
* _game_
* _info_
- _distro_
- _engine_
- _game_
- _info_
**outcome** Labels
Labels that identify why an issue was closed.

4
LICENSE → LICENSE.md

@ -1,6 +1,6 @@
MIT License
# The MIT License (MIT)
Copyright (c) 2012-2021 Daniel Gibbs
Copyright (c) 2012-2023 Daniel Gibbs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

34
README.md

File diff suppressed because one or more lines are too long

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

@ -32,7 +32,7 @@ servermods=""
bepath=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod=${mods} -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"
startparameters="-ip=${ip} -port=${port} -cfg=${networkcfgfullpath} -config=${servercfgfullpath} -mod='${mods}' -servermod=${servermods} -bepath=${bepath} -autoinit -loadmissiontomemory"
#### LinuxGSM Settings ####

187
lgsm/config-default/config-lgsm/armarserver/_default.cfg

@ -0,0 +1,187 @@
##################################
######## 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 ####
# https://community.bistudio.com/wiki/Arma_Reforger:Server_Hosting
# MaxFPS to limit the used Server resouces
maxfps="60"
# Profile Name
serverprofile="server"
serverprofilefullpath="${serverfiles}/profiles/${serverprofile}"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-config ${servercfgfullpath} -profile ${serverprofilefullpath} -maxFPS ${maxfps}"
#### 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"
# 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"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# 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"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="5"
## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
ansi="on"
#### Advanced Settings ####
## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1874900"
steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
# 2: CTRL+c
# 3: quit
# 4: quit 120s
# 5: stop
# 6: q
# 7: exit
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose="yes"
consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Arma Reforger"
engine="enfusion"
glibc="2.27"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./ArmaReforgerServer"
servercfgdir="${systemdir}"
servercfg="${selfname}_config.json"
servercfgdefault="server.json"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
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"

179
lgsm/config-default/config-lgsm/atsserver/_default.cfg

@ -0,0 +1,179 @@
##################################
######## 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 ####
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-nosingle"
#### 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"
# 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"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# 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"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="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"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="2239530"
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
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="4"
querytype="protocol-valve"
## Console type
consoleverbose="yes"
consoleinteract="no"
## Game Server Details
# Do not edit
gamename="American Truck Simulator"
engine="prism3d"
glibc="2.15"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${systemdir}/bin/linux_x64"
executable="./amtrucks_server"
servercfgdir="${HOME}/.local/share/American Truck Simulator"
servercfg="server_config.sii"
servercfgdefault="server_config.sii"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
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"

6
lgsm/config-default/config-lgsm/bt1944server/_default.cfg → lgsm/config-default/config-lgsm/btlserver/_default.cfg

@ -151,7 +151,7 @@ consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Battalion 1944"
gamename="BATTALION: Legacy"
engine="unreal4"
glibc="2.17"
@ -159,9 +159,9 @@ glibc="2.17"
# Edit with care
## Game Server Directories
systemdir="${serverfiles}/Linux/Battalion"
systemdir="${serverfiles}/Battalion"
executabledir="${systemdir}/Binaries/Linux"
executable="./BattalionServer"
executable="./BattalionServer-Linux-Shipping"
servercfgdir="${systemdir}/Saved/Config/LinuxServer"
servercfg="${selfname}.ini"
servercfgdefault="DefaultGame.ini"

186
lgsm/config-default/config-lgsm/ckserver/_default.cfg

@ -0,0 +1,186 @@
##################################
######## 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 ####
ip="0.0.0.0"
port="1234"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-batchmode -ip ${ip} -port ${port} -datapath ${servercfgdir} -logfile ${gamelog}"
#### 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"
# 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"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# 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"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="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"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1963720"
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
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose="no"
consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Core Keeper"
engine="unity3d"
glibc="2.15"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
preexecutable="xvfb-run"
executable="./CoreKeeperServer"
servercfgdir="${systemdir}/gamedata/${selfname}"
servercfg="ServerConfig.json"
servercfgdefault="ServerConfig.json"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${serverfiles}/logs"
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
gamelogdate="${gamelogdir}/${selfname}-game-$(date '+%Y-%m-%d-%H:%M:%S').log"
lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

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

@ -15,7 +15,7 @@ queryport="7779"
defaultmap="AOCTD-Frigid_p"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="${defaultmap}?steamsockets -multihome=${ip} -Port=${port} -QueryPort=${queryport} -seekfreeloadingserver -configsubdir=${gamelogdir} -log=${gamelog}"
startparameters="${defaultmap}?steamsockets -multihome=${ip} -Port=${port} -QueryPort=${queryport} -seekfreeloadingserver -configsubdir=${selfname} -log=${gamelog}"
#### LinuxGSM Settings ####

30
lgsm/config-default/config-lgsm/csgoserver/_default.cfg

@ -10,17 +10,27 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
# https://docs.linuxgsm.com/game-servers/counter-strike-global-offensive
# [Game Modes] gametype gamemode mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one)
# Arms Race 1 0 mg_armsrace
# Classic Casual 0 0 mg_casualsigma, mg_casualdelta
# Classic Competitive 0 1 mg_active, mg_reserves, mg_hostage, mg_de_dust2
# Custom 3 0
# Deathmatch 1 2 mg_deathmatch
# Demolition 1 1 mg_demolition
# Wingman 0 2
# Danger Zone 6 0 mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco)
# [Game Modes] gametype gamemode gamemodeflags skirmishid mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one)
# Arms Race 1 0 0 0 mg_armsrace
# Boom! Headshot! 1 2 0 6 mg_skirmish_headshots
# Classic Casual 0 0 0 0 mg_casualsigma, mg_casualdelta
# Classic Competitive (Default) 0 1 0 0 mg_active, mg_reserves, mg_hostage, mg_de_dust2, ...
# Classic Competitive (Short Match) 0 1 32 0 mg_active, mg_reserves, mg_hostage, mg_de_dust2, ...
# Danger Zone 6 0 0 0 mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco)
# Deathmatch (Default) 1 2 0 0 mg_deathmatch
# Deathmatch (Free For All) 1 2 32 0 mg_deathmatch
# Deathmatch (Team vs Team) 1 2 4 0 mg_deathmatch
# Demolition 1 1 0 0 mg_demolition
# Flying Scoutsman 0 0 0 3 mg_skirmish_flyingscoutsman
# Hunter-Gatherers 1 2 0 7 mg_skirmish_huntergatherers
# Retakes 0 0 0 12 mg_skirmish_retakes
# Stab Stab Zap 0 0 0 1 mg_skirmish_stabstabzap
# Trigger Discipline 0 0 0 4 mg_skirmish_triggerdiscipline
# Wingman 0 2 0 0 mg_de_prime, mg_de_blagai, mg_de_vertigo, mg_de_inferno, mg_de_overpass, mg_de_cbble, mg_de_train, mg_de_shortnuke, mg_de_shortdust, mg_de_lake
gametype="0"
gamemode="0"
gamemodeflags="0"
skirmishid="0"
mapgroup="mg_active"
ip="0.0.0.0"
port="27015"
@ -43,7 +53,7 @@ wscollectionid=""
wsstartmap=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_type ${gametype} +game_mode ${gamemode} +host_workshop_collection ${wscollectionid} +workshop_start_map ${wsstartmap} -authkey ${wsapikey} -nobreakpad"
startparameters="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_type ${gametype} +game_mode ${gamemode} +sv_game_mode_flags ${gamemodeflags} +sv_skirmish_id ${skirmishid} +host_workshop_collection ${wscollectionid} +workshop_start_map ${wsstartmap} -authkey ${wsapikey} -nobreakpad"
#### LinuxGSM Settings ####

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

@ -13,7 +13,7 @@ ip="0.0.0.0"
port="27015"
clientport="27005"
sourcetvport="27020"
defaultmap="emp_district"
defaultmap="con_district402"
maxplayers="62"
## Game Server Login Token (GSLT): Optional

36
lgsm/config-default/config-lgsm/mumbleserver/_default.cfg → lgsm/config-default/config-lgsm/ets2server/_default.cfg

@ -9,7 +9,7 @@
#### Game Server Settings ####
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-fg -ini ${servercfgfullpath}"
startparameters="-nosingle"
#### LinuxGSM Settings ####
@ -107,6 +107,16 @@ ansi="on"
## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1948160"
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
@ -127,8 +137,8 @@ stopmode="2"
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="mumbleping"
querymode="4"
querytype="protocol-valve"
## Console type
consoleverbose="yes"
@ -136,20 +146,20 @@ consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Mumble"
engine="null"
glibc="null"
gamename="Euro Truck Simulator 2"
engine="prism3d"
glibc="2.15"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./murmur.x86"
servercfgdir="${systemdir}"
servercfg="${selfname}.ini"
servercfgdefault="murmur.ini"
executabledir="${systemdir}/bin/linux_x64"
executable="./eurotrucks2_server"
servercfgdir="${HOME}/.local/share/Euro Truck Simulator 2"
servercfg="server_config.sii"
servercfgdefault="server_config.sii"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
@ -167,7 +177,3 @@ 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
logts="off"
logtsformat="%Y-%m-%d %H:%M:%S"

3
lgsm/config-default/config-lgsm/mcbserver/_default.cfg

@ -11,6 +11,9 @@
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters=""
# Version (latest|1.18.33.02)
mcversion="latest"
#### LinuxGSM Settings ####
## LinuxGSM Stats

182
lgsm/config-default/config-lgsm/necserver/_default.cfg

@ -0,0 +1,182 @@
##################################
######## 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 ####
## Pre-defined Paramters | https://docs.linuxgsm.com/configuration/start-parameters#predefined-parameters
worldname="MyWorld"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-localdir -world ${worldname}"
#### 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"
# 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"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# 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"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="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"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1169370"
steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
# 2: CTRL+c
# 3: quit
# 4: quit 120s
# 5: stop
# 6: q
# 7: exit
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose="yes"
consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Necesse"
engine="null"
glibc="2.9"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./StartServer-nogui.sh"
servercfgdir="${serverfiles}/cfg"
servercfg="server.cfg"
servercfgdefault="server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/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"

6
lgsm/config-default/config-lgsm/ns2server/_default.cfg

@ -8,10 +8,6 @@
#### Game Server Settings ####
## SteamCMD Login | https://docs.linuxgsm.com/steamcmd#steamcmd-login
steamuser="username"
steampass='password'
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="27015"
@ -28,7 +24,7 @@ serverpassword=""
# -password \"${serverpassword}\"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods \"${mods}\""
startparameters="-name \"${servername}\" -port ${port} -webadmin -webdomain ${ip} -webuser ${webadminuser} -webpassword \"${webadminpass}\" -webport ${webadminport} -map ${defaultmap} -limit ${maxplayers} -config_path \"${servercfgdir}\" -logdir \"${gamelogdir}\" -modstorage \"${modstoragedir}\" -mods2 \"${mods}\""
#### LinuxGSM Settings ####

184
lgsm/config-default/config-lgsm/pc2server/_default.cfg

@ -0,0 +1,184 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
# Copy settings from here and use them in either:
# common.cfg - applies settings to every instance.
# [instance].cfg - applies settings to a specific instance.
#### Game Server Settings ####
## SteamCMD Login | https://docs.linuxgsm.com/steamcmd#steamcmd-login
steamuser="username"
steampass='password'
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="--config ${servercfg}"
#### 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"
# 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"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# 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"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="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"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="413770"
steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
# 2: CTRL+c
# 3: quit
# 4: quit 120s
# 5: stop
# 6: q
# 7: exit
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose="yes"
consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Project Cars 2"
engine="madness"
glibc="2.15"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./DedicatedServerCmd.elf"
servercfgdir="${systemdir}"
servercfg="${selfname}.cfg"
servercfgdefault="config_sample/server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/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"

3
lgsm/config-default/config-lgsm/rustserver/_default.cfg

@ -13,6 +13,7 @@ ip="0.0.0.0"
port="28015"
rconport="28016"
appport=28082
queryport=28017
rconpassword="CHANGE_ME"
rconweb="1" # Value is: 1 for the Facepunch web panel, Rustadmin desktop and Rustadmin Online; 0 for RCON tools like Rusty.
servername="Rust"
@ -27,7 +28,7 @@ saveinterval="300" # Auto-save in seconds.
tickrate="30" # default: 30, range: 15-100.
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile"
startparameters="-batchmode +app.listenip ${ip} +app.port ${appport} +server.ip ${ip} +server.port ${port} +server.queryport ${queryport} +server.tickrate ${tickrate} +server.hostname \"${servername}\" +server.identity \"${selfname}\" +server.gamemode ${gamemode} +server.level \"${serverlevel}\" +server.seed ${seed} +server.salt ${salt} +server.maxplayers ${maxplayers} +server.worldsize ${worldsize} +server.saveinterval ${saveinterval} +rcon.web ${rconweb} +rcon.ip ${ip} +rcon.port ${rconport} +rcon.password \"${rconpassword}\" -logfile"
#### LinuxGSM Settings ####

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

@ -140,7 +140,7 @@ stopmode="8"
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querymode="5"
querytype="protocol-valve"
## Console type

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

@ -163,7 +163,7 @@ systemdir="${serverfiles}/SquadGame"
executabledir="${serverfiles}"
executable="./SquadGameServer.sh"
servercfgdir="${systemdir}/ServerConfig"
servercfg="${selfname}.cfg"
servercfg="Server.cfg"
servercfgdefault="Server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"

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

@ -10,16 +10,17 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
servername="LinuxGSM"
port="27500"
queryport="27015"
worldtype="Moon"
maxplayers="10"
autosaveinterval=300
clearinterval=60
worldname="moon_save"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
# Edit with care
startparameters="-batchmode -nographics -autostart -gameport=${port} -updateport=${queryport} -worldtype=${worldtype} -loadworld=${worldname} -worldname=${worldname} -autosaveinterval=${autosaveinterval} -clearallinterval=${clearinterval}"
startparameters="-LOADLATEST ${worldname} ${worldtype} -settings ServerName ${servername} StartLocalHost true ServerVisible true ServerMaxPlayers ${maxplayers} GamePort ${port} UpdatePort ${queryport} UPNPEnabled true AutoSave true SaveInterval ${autosaveinterval}"
#### LinuxGSM Settings ####
@ -139,7 +140,7 @@ steammaster="false"
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"
stopmode="3"
## Query mode
# 1: session only
@ -168,8 +169,8 @@ systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./rocketstation_DedicatedServer.x86_64"
servercfgdir="${systemdir}"
servercfg="default.ini"
servercfgdefault="default.ini"
servercfg="setting.xml"
servercfgdefault="setting.xml"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory

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

@ -16,7 +16,7 @@ defaultmap="dustbowl"
maxplayers="16"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-game tfc -strictportbind _ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
startparameters="-game tfc -strictportbind +ip ${ip} -port ${port} +clientport ${clientport} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers ${maxplayers}"
#### LinuxGSM Settings ####

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

@ -145,7 +145,7 @@ glibc="2.1"
# Edit with care
## Game Server Directories
systemdir="${serverfiles}/System"
systemdir="${serverfiles}/System64"
executabledir="${systemdir}"
executable="./ucc-bin"
servercfgdir="${systemdir}"

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

@ -16,9 +16,17 @@ port="2456"
gameworld="${selfname}"
public="1"
savedir="$HOME/.config/unity3d/IronGate/Valheim"
logFile=""
saveinterval="1800"
backups="4"
backupshort="7200"
backuplong="43200"
# If crossplay is empty, it's off. Fill with any text to make true
# Crossplay is currently not working on Linux dedicated servers, so for now the default is false (emtpy)
crossplay=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-name '${servername}' -password ${serverpassword} -port ${port} -world ${gameworld} -public ${public} -savedir '${savedir}'"
startparameters="-name '${servername}' -password ${serverpassword} -port ${port} -world ${gameworld} -public ${public} -savedir '${savedir}' -logFile '${logFile}' -saveinterval ${saveinterval} -backups ${backups} -backupshort ${backupshort} -backuplong ${backuplong} ${crossplay:+-crossplay}"
#### LinuxGSM Settings ####

183
lgsm/config-default/config-lgsm/vpmcserver/_default.cfg

@ -0,0 +1,183 @@
##################################
######## 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
javaram="1024" # -Xmx$1024M
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters=""
## Release Settings | https://docs.linuxgsm.com/game-servers/minecraft#release-settings
# Version (latest|3.1.1)
mcversion="latest"
#### 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"
# 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"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# 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"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="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
# 12: shutdown
stopmode="12"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="minecraft"
## Console type
consoleverbose="yes"
consoleinteract="yes"
## Game Server Details
# Do not edit
gamename="Velocity Proxy"
engine="lwjgl2"
glibc="null"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
preexecutable="java -Xmx${javaram}M -XX:+UseG1GC -XX:G1HeapRegionSize=4M -XX:+UnlockExperimentalVMOptions -XX:+ParallelRefProcEnabled -XX:+AlwaysPreTouch -XX:MaxInlineLevel=15 -jar"
executable="./velocity.jar"
servercfgdir="${systemdir}"
servercfg="velocity.toml"
servercfgdefault="velocity.toml"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/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
logts="off"
logtsformat="%Y-%m-%d %H:%M:%S"

25
lgsm/data/almalinux-8.csv

@ -1,10 +1,12 @@
all,bc,binutils,bzip2,bzip2,cpio,curl,epel-release,file,glibc.i686,gawk,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
@ -14,10 +16,11 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
@ -56,17 +60,17 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
mc,java-11-openjdk
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
@ -74,7 +78,7 @@ ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
@ -94,8 +98,8 @@ sbots
scpsl
scpslsm
sdtd,telnet,expect
sfc,ncurses-libs.i686
sf
sfc,ncurses-libs.i686
sof2
sol
squad
@ -116,11 +120,12 @@ ut2k4
ut3
ut99
vh,glibc-devel
vs
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-11-openjdk
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686

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

131
lgsm/data/almalinux-9.csv

@ -0,0 +1,131 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

19
lgsm/data/centos-7.csv

@ -1,10 +1,12 @@
all,bc,binutils,bzip2,bzip2,cpio,curl,epel-release,file,glibc.i686,gawk,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python3,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl11-libs
ats
av
bb
bb2,libcurl.i686
@ -14,10 +16,11 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
@ -56,17 +60,17 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
@ -94,8 +98,8 @@ sbots
scpsl
scpslsm
sdtd,telnet,expect
sfc,ncurses-libs.i686
sf
sfc,ncurses-libs.i686
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,glibc-devel
vs
vints,mono-complete
vpmc,java-11-openjdk
vs
wet
wf
wmc,java-11-openjdk

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

26
lgsm/data/centos-8.csv

@ -1,10 +1,12 @@
all,bc,binutils,bzip2,bzip2,cpio,curl,epel-release,file,glibc.i686,gawk,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
@ -14,10 +16,11 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
@ -56,17 +60,17 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
mc,java-11-openjdk
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
@ -74,7 +78,7 @@ ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
@ -94,12 +98,13 @@ sbots
scpsl
scpslsm
sdtd,telnet,expect
sfc,ncurses-libs.i686
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
@ -115,11 +120,12 @@ ut2k4
ut3
ut99
vh,glibc-devel
vs
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-11-openjdk
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686

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

131
lgsm/data/centos-9.csv

@ -0,0 +1,131 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

19
lgsm/data/debian-10.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,22 +60,22 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-11-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-11-jre
@ -94,8 +98,8 @@ sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-11-jre
vs
wet
wf
wmc,openjdk-11-jre

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

23
lgsm/data/debian-11.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,29 +60,29 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-17-jre
pstbs,libgconf-2-4
pvkii
pvr,libc++1
pz,openjdk-16-jre,rng-tools
pz,openjdk-17-jre,rng-tools
q2
q3
ql
@ -87,15 +91,15 @@ ricochet
ro
rtcw
rust,lib32z1
rw,openjdk-16-jre
rw,openjdk-17-jre
samp
sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-11-jre
vs
wet
wf
wmc,openjdk-17-jre

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

19
lgsm/data/debian-9.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,22 +60,22 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-8-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-8-jre
@ -94,8 +98,8 @@ sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-8-jre
vs
wet
wf
wmc,openjdk-8-jre

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

21
lgsm/data/rhel-7.csv

@ -1,10 +1,12 @@
all,bc,binutils,bzip2,bzip2,cpio,curl,epel-release,file,glibc.i686,gawk,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl11-libs
ats
av
bb
bb2,libcurl.i686
@ -14,10 +16,11 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
@ -56,17 +60,17 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta
mumble
mta,ncurses-libs
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
@ -94,8 +98,8 @@ sbots
scpsl
scpslsm
sdtd,telnet,expect
sfc,ncurses-libs.i686
sf
sfc,ncurses-libs.i686
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,glibc-devel
vs
vints,mono-complete
vpmc,java-11-openjdk
vs
wet
wf
wmc,java-11-openjdk

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

27
lgsm/data/rhel-8.csv

@ -1,10 +1,12 @@
all,bc,binutils,bzip2,bzip2,cpio,curl,epel-release,file,glibc.i686,gawk,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
@ -14,10 +16,11 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
@ -56,17 +60,17 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
mc,java-11-openjdk
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta
mumble
mta,ncurses-compat-libs
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
@ -74,7 +78,7 @@ ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
@ -94,8 +98,8 @@ sbots
scpsl
scpslsm
sdtd,telnet,expect
sfc,ncurses-libs.i686
sf
sfc,ncurses-libs.i686
sof2
sol
squad
@ -116,11 +120,12 @@ ut2k4
ut3
ut99
vh,glibc-devel
vs
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-11-openjdk
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686

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

131
lgsm/data/rhel-9.csv

@ -0,0 +1,131 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

25
lgsm/data/rocky-8.csv

@ -1,10 +1,12 @@
all,bc,binutils,bzip2,bzip2,cpio,curl,epel-release,file,glibc.i686,gawk,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
@ -14,10 +16,11 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
@ -56,17 +60,17 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
mc,java-11-openjdk
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
@ -74,7 +78,7 @@ ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
@ -94,8 +98,8 @@ sbots
scpsl
scpslsm
sdtd,telnet,expect
sfc,ncurses-libs.i686
sf
sfc,ncurses-libs.i686
sof2
sol
squad
@ -116,11 +120,12 @@ ut2k4
ut3
ut99
vh,glibc-devel
vs
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-11-openjdk
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686

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

131
lgsm/data/rocky-9.csv

@ -0,0 +1,131 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
ats
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
btl
cc
cd
ck,xorg-x11-server-Xvfb
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-17-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-17-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-17-openjdk
vs
wet
wf
wmc,java-17-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

255
lgsm/data/serverlist.csv

@ -1,124 +1,131 @@
ac,acserver,Assetto Corsa
ahl,ahlserver,Action Half-Life
ahl2,ahl2server,Action: Source
ark,arkserver,ARK: Survival Evolved
arma3,arma3server,ARMA 3
av,avserver,Avorion
bb,bbserver,BrainBread
bb2,bb2server,BrainBread 2
bd,bdserver,Base Defense
bf1942,bf1942server,Battlefield 1942
bfv,bfvserver,Battlefield: Vietnam
bmdm,bmdmserver,Black Mesa: Deathmatch
bo,boserver,Ballistic Overkill
bs,bsserver,Blade Symphony
bt,btserver,Barotrauma
bt1944,bt1944server,Battalion 1944
cc,ccserver,Codename CURE
cd,cdserver,Crafting Dead
cmw,cmwserver,Chivalry: Medieval Warfare
cod,codserver,Call of Duty
cod2,cod2server,Call of Duty 2
cod4,cod4server,Call of Duty 4
coduo,coduoserver,Call of Duty: United Offensive
codwaw,codwawserver,Call of Duty: World at War
col,colserver,Colony Survival
cs,csserver,Counter-Strike 1.6
cscz,csczserver,Counter-Strike: Condition Zero
csgo,csgoserver,Counter-Strike: Global Offensive
css,cssserver,Counter-Strike: Source
dab,dabserver,Double Action: Boogaloo
dayz,dayzserver,DayZ
dmc,dmcserver,Deathmatch Classic
dod,dodserver,Day of Defeat
dodr,dodrserver,Day of Dragons
dods,dodsserver,Day of Defeat: Source
doi,doiserver,Day of Infamy
dst,dstserver,Don't Starve Together
dys,dysserver,Dystopia
eco,ecoserver,Eco
em,emserver,Empires Mod
etl,etlserver,ET: Legacy
fctr,fctrserver,Factorio
fof,fofserver,Fistful of Frags
gmod,gmodserver,Garrys Mod
hl2dm,hl2dmserver,Half-Life 2: Deathmatch
hldm,hldmserver,Half-Life: Deathmatch
hldms,hldmsserver,Half-Life Deathmatch: Source
hw,hwserver,Hurtworld
ins,insserver,Insurgency
inss,inssserver,Insurgency: Sandstorm
ios,iosserver,IOSoccer
jc2,jc2server,Just Cause 2
jc3,jc3server,Just Cause 3
jk2,jk2server,Jedi Knight II: Jedi Outcast
kf,kfserver,Killing Floor
kf2,kf2server,Killing Floor 2
lo,loserver,Last Oasis
l4d,l4dserver,Left 4 Dead
l4d2,l4d2server,Left 4 Dead 2
mc,mcserver,Minecraft
mcb,mcbserver,Minecraft Bedrock
mh,mhserver,MORDHAU
mohaa,mohaaserver,Medal of Honor: Allied Assault
mom,momserver,Memories of Mars
mta,mtaserver,Multi Theft Auto
mumble,mumbleserver,Mumble
nd,ndserver,Nuclear Dawn
nmrih,nmrihserver,No More Room in Hell
ns,nsserver,Natural Selection
ns2,ns2server,Natural Selection 2
ns2c,ns2cserver,NS2: Combat
onset,onsetserver,Onset
opfor,opforserver,Opposing Force
pc,pcserver,Project Cars
pmc,pmcserver,PaperMC
pstbs,pstbsserver,Post Scriptum: The Bloody Seventh
pvkii,pvkiiserver,Pirates Vikings & Knights II
pvr,pvrserver,Pavlov VR
pz,pzserver,Project Zomboid
q2,q2server,Quake 2
q3,q3server,Quake 3: Arena
ql,qlserver,Quake Live
qw,qwserver,Quake World
ricochet,ricochetserver,Ricochet
ro,roserver,Red Orchestra: Ostfront 41-45
rtcw,rtcwserver,Return to Castle Wolfenstein
rust,rustserver,Rust
rw,rwserver,Rising World
samp,sampserver,San Andreas Multiplayer
sb,sbserver,Starbound
sbots,sbotsserver,StickyBots
scpsl,scpslserver,SCP: Secret Laboratory
scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod
sdtd,sdtdserver,7 Days to Die
sfc,sfcserver,SourceForts Classic
sf,sfserver,Satisfactory
sof2,sof2server,Soldier Of Fortune 2: Gold Edition
sol,solserver,Soldat
squad,squadserver,Squad
st,stserver,Stationeers
stn,stnserver,Survive the Nights
sven,svenserver,Sven Co-op
terraria,terrariaserver,Terraria
tf2,tf2server,Team Fortress 2
tfc,tfcserver,Team Fortress Classic
ti,tiserver,The Isle
ts,tsserver,The Specialists
ts3,ts3server,Teamspeak 3
tu,tuserver,Tower Unite
tw,twserver,Teeworlds
unt,untserver,Unturned
ut,utserver,Unreal Tournament
ut2k4,ut2k4server,Unreal Tournament 2004
ut3,ut3server,Unreal Tournament 3
ut99,ut99server,Unreal Tournament 99
vh,vhserver,Valheim
vints,vintsserver,Vintage Story
vs,vsserver,Vampire Slayer
wet,wetserver,Wolfenstein: Enemy Territory
wf,wfserver,Warfork
wmc,wmcserver,WaterfallMC
wurm,wurmserver,Wurm Unlimited
zmr,zmrserver,Zombie Master: Reborn
zps,zpsserver,Zombie Panic! Source
ac,acserver,Assetto Corsa,ubuntu-22.04
ahl,ahlserver,Action Half-Life,ubuntu-22.04
ahl2,ahl2server,Action: Source,ubuntu-22.04
ark,arkserver,ARK: Survival Evolved,ubuntu-22.04
arma3,arma3server,ARMA 3,ubuntu-22.04
armar,armarserver,Arma Reforger,ubuntu-20.04
ats,atsserver,American Truck Simulator
av,avserver,Avorion,ubuntu-22.04
bb,bbserver,BrainBread,ubuntu-22.04
bb2,bb2server,BrainBread 2,ubuntu-22.04
bd,bdserver,Base Defense,ubuntu-22.04
bf1942,bf1942server,Battlefield 1942,ubuntu-22.04
bfv,bfvserver,Battlefield: Vietnam,ubuntu-22.04
bmdm,bmdmserver,Black Mesa: Deathmatch,ubuntu-22.04
bo,boserver,Ballistic Overkill,ubuntu-22.04
bs,bsserver,Blade Symphony,ubuntu-22.04
bt,btserver,Barotrauma,ubuntu-22.04
btl,btlserver,BATTALION: Legacy,ubuntu-22.04
cc,ccserver,Codename CURE,ubuntu-22.04
cd,cdserver,Crafting Dead,ubuntu-22.04
ck,ckserver,Core Keeper,ubuntu-22.04
cmw,cmwserver,Chivalry: Medieval Warfare,ubuntu-22.04
cod,codserver,Call of Duty,ubuntu-22.04
cod2,cod2server,Call of Duty 2,ubuntu-22.04
cod4,cod4server,Call of Duty 4,ubuntu-22.04
coduo,coduoserver,Call of Duty: United Offensive,ubuntu-22.04
codwaw,codwawserver,Call of Duty: World at War,ubuntu-22.04
col,colserver,Colony Survival,ubuntu-22.04
cs,csserver,Counter-Strike 1.6,ubuntu-22.04
cscz,csczserver,Counter-Strike: Condition Zero,ubuntu-22.04
csgo,csgoserver,Counter-Strike: Global Offensive,ubuntu-22.04
css,cssserver,Counter-Strike: Source,ubuntu-22.04
dab,dabserver,Double Action: Boogaloo,ubuntu-22.04
dayz,dayzserver,DayZ,ubuntu-22.04
dmc,dmcserver,Deathmatch Classic,ubuntu-22.04
dod,dodserver,Day of Defeat,ubuntu-22.04
dodr,dodrserver,Day of Dragons,ubuntu-22.04
dods,dodsserver,Day of Defeat: Source,ubuntu-22.04
doi,doiserver,Day of Infamy,ubuntu-22.04
dst,dstserver,Don't Starve Together,ubuntu-22.04
dys,dysserver,Dystopia,ubuntu-22.04
eco,ecoserver,Eco,ubuntu-22.04
em,emserver,Empires Mod,ubuntu-22.04
etl,etlserver,ET: Legacy,ubuntu-22.04
ets2,ets2server,Euro Truck Simulator 2,ubuntu-22.04
fctr,fctrserver,Factorio,ubuntu-22.04
fof,fofserver,Fistful of Frags,ubuntu-22.04
gmod,gmodserver,Garrys Mod,ubuntu-22.04
hl2dm,hl2dmserver,Half-Life 2: Deathmatch,ubuntu-22.04
hldm,hldmserver,Half-Life: Deathmatch,ubuntu-22.04
hldms,hldmsserver,Half-Life Deathmatch: Source,ubuntu-22.04
hw,hwserver,Hurtworld,ubuntu-22.04
ins,insserver,Insurgency,ubuntu-22.04
inss,inssserver,Insurgency: Sandstorm,ubuntu-22.04
ios,iosserver,IOSoccer,ubuntu-22.04
jc2,jc2server,Just Cause 2,ubuntu-22.04
jc3,jc3server,Just Cause 3,ubuntu-22.04
jk2,jk2server,Jedi Knight II: Jedi Outcast,ubuntu-22.04
kf,kfserver,Killing Floor,ubuntu-22.04
kf2,kf2server,Killing Floor 2,ubuntu-22.04
l4d,l4dserver,Left 4 Dead,ubuntu-22.04
l4d2,l4d2server,Left 4 Dead 2,ubuntu-22.04
lo,loserver,Last Oasis,ubuntu-22.04
mc,mcserver,Minecraft,ubuntu-22.04
mcb,mcbserver,Minecraft Bedrock,ubuntu-22.04
mh,mhserver,MORDHAU,ubuntu-22.04
mohaa,mohaaserver,Medal of Honor: Allied Assault,ubuntu-22.04
mom,momserver,Memories of Mars,ubuntu-22.04
mta,mtaserver,Multi Theft Auto,ubuntu-22.04
nd,ndserver,Nuclear Dawn,ubuntu-22.04
nec,necserver,Necesse,ubuntu-22.04
nmrih,nmrihserver,No More Room in Hell,ubuntu-22.04
ns,nsserver,Natural Selection,ubuntu-22.04
ns2,ns2server,Natural Selection 2,ubuntu-22.04
ns2c,ns2cserver,NS2: Combat,ubuntu-22.04
onset,onsetserver,Onset,ubuntu-20.04
opfor,opforserver,Opposing Force,ubuntu-22.04
pc,pcserver,Project Cars,ubuntu-22.04
pc2,pc2server,Project Cars 2,ubuntu-22.04
pmc,pmcserver,PaperMC,ubuntu-22.04
pstbs,pstbsserver,Post Scriptum: The Bloody Seventh,ubuntu-22.04
pvkii,pvkiiserver,Pirates Vikings & Knights II,ubuntu-22.04
pvr,pvrserver,Pavlov VR,ubuntu-22.04
pz,pzserver,Project Zomboid,ubuntu-22.04
q2,q2server,Quake 2,ubuntu-22.04
q3,q3server,Quake 3: Arena,ubuntu-22.04
ql,qlserver,Quake Live,ubuntu-22.04
qw,qwserver,Quake World,ubuntu-22.04
ricochet,ricochetserver,Ricochet,ubuntu-22.04
ro,roserver,Red Orchestra: Ostfront 41-45,ubuntu-22.04
rtcw,rtcwserver,Return to Castle Wolfenstein,ubuntu-22.04
rust,rustserver,Rust,ubuntu-22.04
rw,rwserver,Rising World,ubuntu-22.04
samp,sampserver,San Andreas Multiplayer,ubuntu-22.04
sb,sbserver,Starbound,ubuntu-22.04
sbots,sbotsserver,StickyBots,ubuntu-22.04
scpsl,scpslserver,SCP: Secret Laboratory,ubuntu-22.04
scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod,ubuntu-22.04
sdtd,sdtdserver,7 Days to Die,ubuntu-22.04
sf,sfserver,Satisfactory,ubuntu-22.04
sfc,sfcserver,SourceForts Classic,ubuntu-22.04
sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-22.04
sol,solserver,Soldat,ubuntu-22.04
squad,squadserver,Squad,ubuntu-22.04
st,stserver,Stationeers,ubuntu-22.04
stn,stnserver,Survive the Nights,ubuntu-22.04
sven,svenserver,Sven Co-op,ubuntu-20.04
terraria,terrariaserver,Terraria,ubuntu-22.04
tf2,tf2server,Team Fortress 2,ubuntu-22.04
tfc,tfcserver,Team Fortress Classic,ubuntu-22.04
ti,tiserver,The Isle,ubuntu-22.04
ts,tsserver,The Specialists,ubuntu-22.04
ts3,ts3server,Teamspeak 3,ubuntu-22.04
tu,tuserver,Tower Unite,ubuntu-22.04
tw,twserver,Teeworlds,ubuntu-22.04
unt,untserver,Unturned,ubuntu-22.04
ut,utserver,Unreal Tournament,ubuntu-22.04
ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-22.04
ut3,ut3server,Unreal Tournament 3,ubuntu-22.04
ut99,ut99server,Unreal Tournament 99,ubuntu-22.04
vh,vhserver,Valheim,ubuntu-22.04
vints,vintsserver,Vintage Story,ubuntu-22.04
vpmc,vpmcserver,Velocity Proxy MC,ubuntu-22.04
vs,vsserver,Vampire Slayer,ubuntu-22.04
wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-22.04
wf,wfserver,Warfork,ubuntu-22.04
wmc,wmcserver,WaterfallMC,ubuntu-22.04
wurm,wurmserver,Wurm Unlimited,ubuntu-22.04
zmr,zmrserver,Zombie Master: Reborn,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 7.

19
lgsm/data/ubuntu-16.04.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,22 +60,22 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-8-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-8-jre
@ -94,8 +98,8 @@ sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-8-jre
vs
wet
wf
wmc,openjdk-8-jre

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

19
lgsm/data/ubuntu-18.04.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,22 +60,22 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-11-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-11-jre
@ -94,8 +98,8 @@ sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-11-jre
vs
wet
wf
wmc,openjdk-11-jre

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

23
lgsm/data/ubuntu-20.04.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,29 +60,29 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-17-jre
pstbs,libgconf-2-4
pvkii
pvr,libc++1
pz,openjdk-16-jre,rng-tools
pz,openjdk-17-jre,rng-tools
q2
q3
ql
@ -87,15 +91,15 @@ ricochet
ro
rtcw
rust,lib32z1
rw,openjdk-16-jre
rw,openjdk-17-jre
samp
sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-11-jre
vs
wet
wf
wmc,openjdk-17-jre

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

25
lgsm/data/ubuntu-21.04.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,10 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
cd
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -41,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -56,29 +60,29 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-17-jre
pstbs,libgconf-2-4
pvkii
pvr,libc++1
pz,openjdk-16-jre,rng-tools
pz,openjdk-17-jre,rng-tools
q2
q3
ql
@ -87,22 +91,22 @@ ricochet
ro
rtcw
rust,lib32z1
rw,openjdk-16-jre
rw,openjdk-17-jre
samp
sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
st
stn
sven,libssl1.1:i386,zlib1g:i386
terraria,libsdl
terraria
tf2,libcurl4-gnutls-dev:i386
tfc
ti
@ -116,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-11-jre
vs
wet
wf
wmc,openjdk-17-jre

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

23
lgsm/data/ubuntu-21.10.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -15,8 +17,9 @@ bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
btl
cc
ck,xvfb
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -39,6 +42,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -54,29 +58,29 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-17-jre
pstbs,libgconf-2-4
pvkii
pvr,libc++1
pz,openjdk-16-jre,rng-tools
pz,openjdk-17-jre,rng-tools
q2
q3
ql
@ -85,22 +89,22 @@ ricochet
ro
rtcw
rust,lib32z1
rw,openjdk-16-jre
rw,openjdk-17-jre
samp
sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
st
stn
sven,libssl1.1:i386,zlib1g:i386
terraria,libsdl
terraria
tf2,libcurl4-gnutls-dev:i386
tfc
ti
@ -114,8 +118,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-11-jre
vs
wet
wf
wmc,openjdk-17-jre

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

27
lgsm/data/ubuntu-22.04.csv

@ -5,6 +5,8 @@ ahl
ahl2
ark
arma3
armar,libcurl4
ats
av
bb
bb2,libcurl4-gnutls-dev:i386
@ -14,9 +16,11 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386
bo
bs
bt,libicu-dev
bt1944
bt,libicu-dev,dos2unix
btl
cc
ck,xvfb
cd
cmw
cod,libstdc++5:i386
cod2,libstdc++5:i386
@ -29,6 +33,7 @@ cscz
csgo
css,libtinfo5:i386
dab
dayz
dmc
dod
dodr
@ -39,6 +44,7 @@ dys
eco,libgdiplus
em
etl
ets2
fctr
fof
gmod,libtinfo5:i386
@ -54,29 +60,29 @@ jc3
jk2
kf
kf2
lo
l4d
l4d2
lo
mc,openjdk-17-jre
mcb
mh
mohaa,libstdc++5:i386
mom
mta,libncursesw5
mumble
nd
nec
nmrih,libtinfo5:i386
ns
ns2,speex,libtbb2
ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev
onset,libmariadb-dev
opfor
pc
pmc,openjdk-17-jre
pstbs,libgconf-2-4
pvkii
pvr,libc++1
pz,openjdk-16-jre,rng-tools
pz,openjdk-17-jre,rng-tools5
q2
q3
ql
@ -85,22 +91,22 @@ ricochet
ro
rtcw
rust,lib32z1
rw,openjdk-16-jre
rw,openjdk-17-jre
samp
sb
sbots
scpsl,mono-complete
scpslsm,mono-complete
sdtd,telnet,expect
sfc,libtinfo5:i386
sf
sfc,libtinfo5:i386
sof2
sol
squad
st
stn
sven,libssl1.1:i386,zlib1g:i386
terraria,libsdl
terraria
tf2,libcurl4-gnutls-dev:i386
tfc
ti
@ -114,8 +120,9 @@ ut2k4
ut3
ut99
vh,libc6-dev
vs
vints,mono-complete
vpmc,openjdk-17-jre
vs
wet
wf
wmc,openjdk-17-jre

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

19
lgsm/functions/README.md

@ -3,14 +3,15 @@
These modules are scripts that are called upon by the primary script linuxgsm.sh
## Module Names
Modules have been named to give an idea of what the function does.
* core: Essential modules that will always run first.
* command: Primary command function.
* check: Runs checks that will either halt on or fix an issue.
* dev: development modules.
* fix: Applies a game server specific fix.
* info: retrieves information from a source such as config file or the OS.
* install: modules related to the installer.
* monitor: modules related to monitor.
* update: modules that update the game server.
- core: Essential modules that will always run first.
- command: Primary command function.
- check: Runs checks that will either halt on or fix an issue.
- dev: development modules.
- fix: Applies a game server specific fix.
- info: retrieves information from a source such as config file or the OS.
- install: modules related to the installer.
- monitor: modules related to monitor.
- update: modules that update the game server.

90
lgsm/functions/alert.sh

@ -9,7 +9,7 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Generates alert log of the details at the time of the alert.
# Used with email alerts.
fn_alert_log(){
fn_alert_log() {
info_distro.sh
info_game.sh
info_messages.sh
@ -24,10 +24,10 @@ fn_alert_log(){
fn_info_message_gameserver_resource
fn_info_message_gameserver
fn_info_logs
} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"| tee -a "${alertlog}" > /dev/null 2>&1
} | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | tee -a "${alertlog}" > /dev/null 2>&1
}
fn_alert_test(){
fn_alert_test() {
fn_script_log_info "Sending test alert"
alertsubject="Alert - ${selfname} - Test"
alertemoji="🚧"
@ -36,7 +36,7 @@ fn_alert_test(){
alertbody="Testing LinuxGSM Alert. No action to be taken."
}
fn_alert_restart(){
fn_alert_restart() {
fn_script_log_info "Sending alert: Restarted: ${executable} not running"
alertsubject="Alert - ${selfname} - Restarted"
alertemoji="🚨"
@ -45,7 +45,7 @@ fn_alert_restart(){
alertbody="${selfname} ${executable} not running"
}
fn_alert_restart_query(){
fn_alert_restart_query() {
fn_script_log_info "Sending alert: Restarted: ${selfname}"
alertsubject="Alert - ${selfname} - Restarted"
alertemoji="🚨"
@ -54,25 +54,25 @@ fn_alert_restart_query(){
alertbody="Unable to query: ${selfname}"
}
fn_alert_update(){
fn_alert_update() {
fn_script_log_info "Sending alert: Updated"
alertsubject="Alert - ${selfname} - Updated"
alertemoji="🎮"
alertsound="1"
alerturl="not enabled"
alertbody="${gamename} received update"
alertbody="${gamename} received update: ${remotebuildversion}"
}
fn_alert_check_update(){
fn_alert_check_update() {
fn_script_log_info "Sending alert: Update available"
alertsubject="Alert - ${selfname} - Update available"
alertemoji="🎮"
alertsound="1"
alerturl="not enabled"
alertbody="${gamename} update available"
alertbody="${gamename} update available: ${remotebuildversion}"
}
fn_alert_permissions(){
fn_alert_permissions() {
fn_script_log_info "Sending alert: Permissions error"
alertsubject="Alert - ${selfname}: Permissions error"
alertemoji="❗"
@ -81,7 +81,7 @@ fn_alert_permissions(){
alertbody="${selfname} has permissions issues"
}
fn_alert_config(){
fn_alert_config() {
fn_script_log_info "Sending alert: New _default.cfg"
alertsubject="Alert - ${selfname} - New _default.cfg"
alertemoji="🎮"
@ -110,128 +110,128 @@ fi
fn_alert_log
# Generates the more info link.
if [ "${postalert}" == "on" ]&&[ -n "${postalert}" ]; then
if [ "${postalert}" == "on" ] && [ -n "${postalert}" ]; then
exitbypass=1
command_postdetails.sh
fn_firstcommand_reset
unset exitbypass
elif [ "${postalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${postalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "More Info not enabled"
fn_script_log_warn "More Info alerts not enabled"
fi
if [ "${discordalert}" == "on" ]&&[ -n "${discordalert}" ]; then
if [ "${discordalert}" == "on" ] && [ -n "${discordalert}" ]; then
alert_discord.sh
elif [ "${discordalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${discordalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Discord alerts not enabled"
fn_script_log_warn "Discord alerts not enabled"
elif [ -z "${discordtoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${discordtoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Discord token not set"
echo -e "* https://docs.linuxgsm.com/alerts/discord"
fn_script_error "Discord token not set"
fi
if [ "${emailalert}" == "on" ]&&[ -n "${email}" ]; then
if [ "${emailalert}" == "on" ] && [ -n "${email}" ]; then
alert_email.sh
elif [ "${emailalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${emailalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Email alerts not enabled"
fn_script_log_warn "Email alerts not enabled"
elif [ -z "${email}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${email}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Email not set"
fn_script_log_error "Email not set"
fi
if [ "${gotifyalert}" == "on" ]&&[ -n "${gotifyalert}" ]; then
if [ "${gotifyalert}" == "on" ] && [ -n "${gotifyalert}" ]; then
alert_gotify.sh
elif [ "${gotifyalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${gotifyalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Gotify alerts not enabled"
fn_script_log_warn "Gotify alerts not enabled"
elif [ -z "${gotifytoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${gotifytoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Gotify token not set"
echo -e "* https://docs.linuxgsm.com/alerts/gotify"
fn_script_error "Gotify token not set"
elif [ -z "${gotifywebhook}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${gotifywebhook}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Gotify webhook not set"
echo -e "* https://docs.linuxgsm.com/alerts/gotify"
fn_script_error "Gotify webhook not set"
fi
if [ "${iftttalert}" == "on" ]&&[ -n "${iftttalert}" ]; then
if [ "${iftttalert}" == "on" ] && [ -n "${iftttalert}" ]; then
alert_ifttt.sh
elif [ "${iftttalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${iftttalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "IFTTT alerts not enabled"
fn_script_log_warn "IFTTT alerts not enabled"
elif [ -z "${ifttttoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${ifttttoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "IFTTT token not set"
echo -e "* https://docs.linuxgsm.com/alerts/ifttt"
fn_script_error "IFTTT token not set"
fi
if [ "${mailgunalert}" == "on" ]&&[ -n "${mailgunalert}" ]; then
if [ "${mailgunalert}" == "on" ] && [ -n "${mailgunalert}" ]; then
alert_mailgun.sh
elif [ "${mailgunalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${mailgunalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Mailgun alerts not enabled"
fn_script_log_warn "Mailgun alerts not enabled"
elif [ -z "${mailguntoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${mailguntoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Mailgun token not set"
echo -e "* https://docs.linuxgsm.com/alerts/mailgun"
fn_script_error "Mailgun token not set"
fi
if [ "${pushbulletalert}" == "on" ]&&[ -n "${pushbullettoken}" ]; then
if [ "${pushbulletalert}" == "on" ] && [ -n "${pushbullettoken}" ]; then
alert_pushbullet.sh
elif [ "${pushbulletalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${pushbulletalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Pushbullet alerts not enabled"
fn_script_log_warn "Pushbullet alerts not enabled"
elif [ -z "${pushbullettoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${pushbullettoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Pushbullet token not set"
echo -e "* https://docs.linuxgsm.com/alerts/pushbullet"
fn_script_error "Pushbullet token not set"
fi
if [ "${pushoveralert}" == "on" ]&&[ -n "${pushoveralert}" ]; then
if [ "${pushoveralert}" == "on" ] && [ -n "${pushoveralert}" ]; then
alert_pushover.sh
elif [ "${pushoveralert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${pushoveralert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Pushover alerts not enabled"
fn_script_log_warn "Pushover alerts not enabled"
elif [ -z "${pushovertoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${pushovertoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Pushover token not set"
echo -e "* https://docs.linuxgsm.com/alerts/pushover"
fn_script_error "Pushover token not set"
fi
if [ "${telegramalert}" == "on" ]&&[ -n "${telegramtoken}" ]; then
if [ "${telegramalert}" == "on" ] && [ -n "${telegramtoken}" ]; then
alert_telegram.sh
elif [ "${telegramalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${telegramalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Telegram Messages not enabled"
fn_script_log_warn "Telegram Messages not enabled"
elif [ -z "${telegramtoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${telegramtoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Telegram token not set."
echo -e "* https://docs.linuxgsm.com/alerts/telegram"
fn_script_error "Telegram token not set."
elif [ -z "${telegramchatid}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${telegramchatid}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Telegram chat id not set."
echo -e "* https://docs.linuxgsm.com/alerts/telegram"
fn_script_error "Telegram chat id not set."
fi
if [ "${rocketchatalert}" == "on" ]&&[ -n "${rocketchatalert}" ]; then
if [ "${rocketchatalert}" == "on" ] && [ -n "${rocketchatalert}" ]; then
alert_rocketchat.sh
elif [ "${rocketchatalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${rocketchatalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Rocketchat alerts not enabled"
fn_script_log_warn "Rocketchat alerts not enabled"
elif [ -z "${rocketchattoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${rocketchattoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Rocketchat token not set"
#echo -e "* https://docs.linuxgsm.com/alerts/slack"
fn_script_error "Rocketchat token not set"
fi
if [ "${slackalert}" == "on" ]&&[ -n "${slackalert}" ]; then
if [ "${slackalert}" == "on" ] && [ -n "${slackalert}" ]; then
alert_slack.sh
elif [ "${slackalert}" != "on" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ "${slackalert}" != "on" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_warn_nl "Slack alerts not enabled"
fn_script_log_warn "Slack alerts not enabled"
elif [ -z "${slacktoken}" ]&&[ "${commandname}" == "TEST-ALERT" ]; then
elif [ -z "${slacktoken}" ] && [ "${commandname}" == "TEST-ALERT" ]; then
fn_print_error_nl "Slack token not set"
echo -e "* https://docs.linuxgsm.com/alerts/slack"
fn_script_error "Slack token not set"

3
lgsm/functions/alert_discord.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"username":"LinuxGSM",
"avatar_url":"https://raw.githubusercontent.com/${githubuser}/${githubrepo}/${githubbranch}/lgsm/data/alert_discord_logo.jpg",

3
lgsm/functions/alert_gotify.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"title": "${alertemoji} ${alertsubject} ${alertemoji}",
"message": "Server name\n${servername}\n\nMessage\n${alertbody}\n\nGame\n${gamename}\n\nServer IP\n${alertip}:${port}\n\nHostname\n${HOSTNAME}\n\nMore info\n${alerturl}",

3
lgsm/functions/alert_ifttt.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"value1": "${selfname}",
"value2": "${alertemoji} ${alertsubject} ${alertemoji}",

12
lgsm/functions/alert_mailgun.sh

@ -16,12 +16,12 @@ fi
fn_print_dots "Sending Email alert: Mailgun: ${mailgunemail}"
mailgunsend=$(curl --connect-timeout 10 -s --user "api:${mailguntoken}" \
-F from="LinuxGSM <${mailgunemailfrom}>" \
-F to="LinuxGSM Admin <${mailgunemail}>" \
-F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
-F o:tag='alert' \
-F o:tag='LinuxGSM' \
-F text="$(cat "${alertlog}")" "${mailgunapiurl}/v3/${mailgundomain}/messages")
-F from="LinuxGSM <${mailgunemailfrom}>" \
-F to="LinuxGSM Admin <${mailgunemail}>" \
-F subject="${alertemoji} ${alertsubject} ${alertemoji}" \
-F o:tag='alert' \
-F o:tag='LinuxGSM' \
-F text="$(cat "${alertlog}")" "${mailgunapiurl}/v3/${mailgundomain}/messages")
if [ -z "${mailgunsend}" ]; then
fn_print_fail_nl "Sending Email alert: Mailgun: ${mailgunemail}"

3
lgsm/functions/alert_pushbullet.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"channel_tag": "${channeltag}",
"type": "note",

2
lgsm/functions/alert_pushover.sh

@ -22,7 +22,7 @@ else
alertpriority="0"
fi
pushoversend=$(curl --connect-timeout 10 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Server name</b><br>${servername}<br><br><b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${alertip}:${port}'>${alertip}:${port}</a><br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json" | grep errors)
pushoversend=$(curl --connect-timeout 10 -sS -F token="${pushovertoken}" -F user="${pushoveruserkey}" -F html="1" -F sound="${alertsound}" -F priority="${alertpriority}" -F title="${alertemoji} ${alertsubject} ${alertemoji}" -F message=" <b>Server name</b><br>${servername}<br><br><b>Message</b><br>${alertbody}<br><br><b>Game</b><br>${gamename}<br><br><b>Server IP</b><br><a href='https://www.gametracker.com/server_info/${alertip}:${port}'>${alertip}:${port}</a><br><br><b>Hostname</b><br>${HOSTNAME}<br><br><b>More info</b><br><a href='${alerturl}'>${alerturl}</a>" "https://api.pushover.net/1/messages.json" | grep errors)
if [ -n "${pushoversend}" ]; then
fn_print_fail_nl "Sending Pushover alert: ${pushoversend}"

3
lgsm/functions/alert_rocketchat.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"alias": "LinuxGSM",
"text": "*${alertemoji} ${alertsubject} ${alertemoji}* \n *${servername}* \n ${alertbody} \n More info: ${alerturl}",

3
lgsm/functions/alert_slack.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"attachments": [
{

3
lgsm/functions/alert_telegram.sh

@ -7,7 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
json=$(cat <<EOF
json=$(
cat << EOF
{
"chat_id": "${telegramchatid}",
"parse_mode": "HTML",

24
lgsm/functions/check.sh

@ -21,25 +21,25 @@ fi
check_tmuxception.sh
if [ "$(whoami)" != "root" ]; then
if [ "$(whoami)" != "root" ] || [ -f /.dockerenv ]; then
if [ "${commandname}" != "MONITOR" ]; then
check_permissions.sh
fi
fi
if [ "${commandname}" != "INSTALL" ]&&[ "${commandname}" != "UPDATE-LGSM" ]&&[ "${commandname}" != "DETAILS" ]&&[ "${commandname}" != "POST-DETAILS" ]; then
if [ "${commandname}" != "INSTALL" ] && [ "${commandname}" != "UPDATE-LGSM" ] && [ "${commandname}" != "DETAILS" ] && [ "${commandname}" != "POST-DETAILS" ]; then
check_system_dir.sh
fi
allowed_commands_array=( START DEBUG )
allowed_commands_array=(START DEBUG)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_executable.sh
fi
done
if [ "$(whoami)" != "root" ]; then
allowed_commands_array=( DEBUG START INSTALL )
if [ "$(whoami)" != "root" ] || [ -f /.dockerenv ]; then
allowed_commands_array=(DEBUG START INSTALL)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_glibc.sh
@ -47,28 +47,28 @@ if [ "$(whoami)" != "root" ]; then
done
fi
allowed_commands_array=( BACKUP CONSOLE DEBUG DETAILS MAP-COMPRESSOR FASTDL MODS-INSTALL MODS-REMOVE MODS-UPDATE MONITOR POST-DETAILS RESTART START STOP TEST-ALERT CHANGE-PASSWORD UPDATE UPDATE-LGSM VALIDATE WIPE )
allowed_commands_array=(BACKUP CONSOLE DEBUG DETAILS MAP-COMPRESSOR FASTDL MODS-INSTALL MODS-REMOVE MODS-UPDATE MONITOR POST-DETAILS RESTART START STOP TEST-ALERT CHANGE-PASSWORD UPDATE UPDATE-LGSM VALIDATE WIPE)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_logs.sh
fi
done
allowed_commands_array=( DEBUG START )
allowed_commands_array=(DEBUG START)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_deps.sh
fi
done
allowed_commands_array=( CONSOLE DEBUG MONITOR START STOP )
allowed_commands_array=(CONSOLE DEBUG MONITOR START STOP)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_config.sh
fi
done
allowed_commands_array=( DEBUG DETAILS DEV-QUERY-RAW MONITOR POST_DETAILS START STOP POST-DETAILS )
allowed_commands_array=(DEBUG DETAILS DEV-QUERY-RAW MONITOR POST_DETAILS START STOP POST-DETAILS)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
if [ -z "${installflag}" ]; then
@ -77,7 +77,7 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
allowed_commands_array=( DEBUG START UPDATE VALIDATE )
allowed_commands_array=(DEBUG START UPDATE VALIDATE)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
if [ "${appid}" ]; then
@ -86,14 +86,14 @@ for allowed_command in "${allowed_commands_array[@]}"; do
fi
done
allowed_commands_array=( CHANGE-PASSWORD DETAILS MONITOR START STOP UPDATE VALIDATE POST-DETAILS )
allowed_commands_array=(CHANGE-PASSWORD DETAILS MONITOR START STOP UPDATE VALIDATE POST-DETAILS)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_status.sh
fi
done
allowed_commands_array=( DEBUG START INSTALL )
allowed_commands_array=(DEBUG START INSTALL)
for allowed_command in "${allowed_commands_array[@]}"; do
if [ "${allowed_command}" == "${commandname}" ]; then
check_system_requirements.sh

10
lgsm/functions/check_config.sh

@ -7,7 +7,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
if [ -n "${servercfgfullpath}" ]&&[ ! -f "${servercfgfullpath}" ]; then
if [ -n "${servercfgfullpath}" ] && [ ! -f "${servercfgfullpath}" ]; then
fn_print_dots ""
fn_print_warn_nl "Configuration file missing!"
echo -e "${servercfgfullpath}"
@ -16,20 +16,20 @@ if [ -n "${servercfgfullpath}" ]&&[ ! -f "${servercfgfullpath}" ]; then
install_config.sh
fi
if [ "${shortname}" == "rust" ]&&[ -v rconpassword ]&&[ -z "${rconpassword}" ]; then
if [ "${shortname}" == "rust" ] && [ -v rconpassword ] && [ -z "${rconpassword}" ]; then
fn_print_dots ""
fn_print_fail_nl "RCON password is not set"
fn_script_log_warn "RCON password is not set"
elif [ -v rconpassword ]&&[ "${rconpassword}" == "CHANGE_ME" ]; then
elif [ -v rconpassword ] && [ "${rconpassword}" == "CHANGE_ME" ]; then
fn_print_dots ""
fn_print_warn_nl "Default RCON Password detected"
fn_script_log_warn "Default RCON Password detected"
fi
if [ "${shortname}" == "vh" ]&&[ -z "${serverpassword}" ]; then
if [ "${shortname}" == "vh" ] && [ -z "${serverpassword}" ]; then
fn_print_fail_nl "serverpassword is not set"
fn_script_log_fatal "serverpassword is not set"
elif [ "${shortname}" == "vh" ]&&[ "${#serverpassword}" -le "4" ]; then
elif [ "${shortname}" == "vh" ] && [ "${#serverpassword}" -le "4" ]; then
fn_print_fail_nl "serverpassword is to short (min 5 chars)"
fn_script_log_fatal "serverpassword is to short (min 5 chars)"
fi

93
lgsm/functions/check_deps.sh

@ -7,7 +7,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_install_mono_repo(){
fn_install_mono_repo() {
if [ "${autodepinstall}" == "0" ]; then
fn_print_information_nl "Automatically adding Mono repository."
fn_script_log_info "Automatically adding Mono repository."
@ -36,7 +36,7 @@ fn_install_mono_repo(){
else
monoautoinstall="1"
fi
elif [ "${distroid}" == "centos" ]||[ "${distroid}" == "almalinux" ]||[ "${distroid}" == "rocky" ]; then
elif [ "${distroid}" == "centos" ] || [ "${distroid}" == "almalinux" ] || [ "${distroid}" == "rocky" ]; then
if [ "${distroversion}" == "8" ]; then
cmd="sudo rpmkeys --import 'https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF';su -c 'curl https://download.mono-project.com/repo/centos8-stable.repo | tee /etc/yum.repos.d/mono-centos8-stable.repo'"
elif [ "${distroversion}" == "7" ]; then
@ -85,30 +85,30 @@ fn_install_mono_repo(){
fi
}
fn_deps_email(){
fn_deps_email() {
# Adds postfix to required dependencies if email alert is enabled.
if [ "${emailalert}" == "on" ]; then
if [ -f /usr/bin/mailx ]; then
if [ -d /etc/exim4 ]; then
array_deps_required+=( exim4 )
array_deps_required+=(exim4)
elif [ -d /etc/sendmail ]; then
array_deps_required+=( sendmail )
elif [ "$(command -v dpkg-query 2>/dev/null)" ]; then
array_deps_required+=( mailutils postfix )
elif [ "$(command -v rpm 2>/dev/null)" ]; then
array_deps_required+=( mailx postfix )
array_deps_required+=(sendmail)
elif [ "$(command -v dpkg-query 2> /dev/null)" ]; then
array_deps_required+=(mailutils postfix)
elif [ "$(command -v rpm 2> /dev/null)" ]; then
array_deps_required+=(mailx postfix)
fi
else
if [ "$(command -v dpkg-query 2>/dev/null)" ]; then
array_deps_required+=( mailutils postfix )
elif [ "$(command -v rpm 2>/dev/null)" ]; then
array_deps_required+=( mailx postfix )
if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
array_deps_required+=(mailutils postfix)
elif [ "$(command -v rpm 2> /dev/null)" ]; then
array_deps_required+=(mailx postfix)
fi
fi
fi
}
fn_install_missing_deps(){
fn_install_missing_deps() {
# If any dependencies are not installed.
if [ "${#array_deps_missing[*]}" != "0" ]; then
if [ "${commandname}" == "INSTALL" ]; then
@ -143,9 +143,8 @@ fn_install_missing_deps(){
fi
fi
# Add sudo dpkg --add-architecture i386 if using i386 packages.
if [ "$(command -v dpkg-query 2>/dev/null)" ]; then
if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
if printf '%s\n' "${array_deps_required[@]}" | grep -q -P 'i386'; then
i386installcommand="sudo dpkg --add-architecture i386; "
fi
@ -162,13 +161,13 @@ fn_install_missing_deps(){
echo -en "...\r"
sleep 1
echo -en " \r"
if [ "$(command -v dpkg-query 2>/dev/null)" ]; then
if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
cmd="echo steamcmd steam/question select \"I AGREE\" | sudo debconf-set-selections; echo steamcmd steam/license note '' | sudo debconf-set-selections; ${i386installcommand}sudo apt-get update; sudo apt-get -y install ${array_deps_missing[*]}"
eval "${cmd}"
elif [ "$(command -v dnf 2>/dev/null)" ]; then
elif [ "$(command -v dnf 2> /dev/null)" ]; then
cmd="sudo dnf -y install ${array_deps_missing[*]}"
eval "${cmd}"
elif [ "$(command -v yum 2>/dev/null)" ]; then
elif [ "$(command -v yum 2> /dev/null)" ]; then
cmd="sudo yum -y install ${array_deps_missing[*]}"
eval "${cmd}"
fi
@ -182,11 +181,11 @@ fn_install_missing_deps(){
# If automatic dependency install is unavailable.
if [ "${autodepinstall}" != "0" ]; then
if [ "$(command -v dpkg-query 2>/dev/null)" ]; then
if [ "$(command -v dpkg-query 2> /dev/null)" ]; then
echo -e "${i386installcommand}sudo apt update; sudo apt install ${array_deps_missing[*]}"
elif [ "$(command -v dnf 2>/dev/null)" ]; then
elif [ "$(command -v dnf 2> /dev/null)" ]; then
echo -e "sudo dnf install ${array_deps_missing[*]}"
elif [ "$(command -v yum 2>/dev/null)" ]; then
elif [ "$(command -v yum 2> /dev/null)" ]; then
echo -e "sudo yum install ${array_deps_missing[*]}"
fi
fi
@ -210,7 +209,7 @@ fn_install_missing_deps(){
fi
}
fn_check_loop(){
fn_check_loop() {
# Loop though required depenencies checking if they are installed.
for deptocheck in ${array_deps_required[*]}; do
fn_deps_detector
@ -221,21 +220,21 @@ fn_check_loop(){
}
# Checks if dependency is installed or not.
fn_deps_detector(){
fn_deps_detector() {
## Check.
# SteamCMD: Will be removed from required array if no appid is present or non-free repo is not available.
# This will cause SteamCMD to be installed using tar.
if [ "${deptocheck}" == "libsdl2-2.0-0:i386" ]&&[ -z "${appid}" ]; then
array_deps_required=( "${array_deps_required[@]/libsdl2-2.0-0:i386}" )
if [ "${deptocheck}" == "libsdl2-2.0-0:i386" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/libsdl2-2.0-0:i386/}")
steamcmdstatus=1
elif [ "${deptocheck}" == "steamcmd" ]&&[ -z "${appid}" ]; then
array_deps_required=( "${array_deps_required[@]/steamcmd}" )
elif [ "${deptocheck}" == "steamcmd" ] && [ -z "${appid}" ]; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
elif [ "${deptocheck}" == "steamcmd" ]&&[ "${distroid}" == "debian" ]&& ! grep -qE "^deb .*non-free" /etc/apt/sources.list; then
array_deps_required=( "${array_deps_required[@]/steamcmd}" )
elif [ "${deptocheck}" == "steamcmd" ] && [ "${distroid}" == "debian" ] && ! grep -qE "^deb .*non-free" /etc/apt/sources.list; then
array_deps_required=("${array_deps_required[@]/steamcmd/}")
steamcmdstatus=1
# Java: Added for users using Oracle JRE to bypass check.
elif [[ ${deptocheck} == "openjdk"* ]]||[[ ${deptocheck} == "java"* ]]; then
elif [[ ${deptocheck} == "openjdk"* ]] || [[ ${deptocheck} == "java"* ]]; then
# Is java already installed?
if [ -n "${javaversion}" ]; then
# Added for users using Oracle JRE to bypass check.
@ -246,7 +245,7 @@ fn_deps_detector(){
fi
# Mono: A Mono repo needs to be installed.
elif [ "${deptocheck}" == "mono-complete" ]; then
if [ -n "${monoversion}" ]&&[ "${monoversion}" -ge "5" ]; then
if [ -n "${monoversion}" ] && [ "${monoversion}" -ge "5" ]; then
# Mono >= 5.0.0 already installed.
depstatus=0
monostatus=0
@ -255,13 +254,13 @@ fn_deps_detector(){
depstatus=1
monostatus=1
fi
elif [ "$(command -v dpkg-query 2>/dev/null)" ]; then
dpkg-query -W -f='${Status}' "${deptocheck}" 2>/dev/null | grep -q -P '^install ok installed'
elif [ "$(command -v dpkg-query 2> /dev/null)" ]; then
dpkg-query -W -f='${Status}' "${deptocheck}" 2> /dev/null | grep -q -P '^install ok installed'
depstatus=$?
elif [ "$(command -v dnf 2>/dev/null)" ]; then
elif [ "$(command -v dnf 2> /dev/null)" ]; then
dnf list installed "${deptocheck}" > /dev/null 2>&1
depstatus=$?
elif [ "$(command -v rpm 2>/dev/null)" ]; then
elif [ "$(command -v rpm 2> /dev/null)" ]; then
rpm -q "${deptocheck}" > /dev/null 2>&1
depstatus=$?
fi
@ -286,11 +285,11 @@ fn_deps_detector(){
fi
# If SteamCMD requirements are not met install will fail.
if [ -n "${appid}" ]; then
for steamcmddeptocheck in ${array_deps_required_steamcmd[*]}; do
if [ "${deptocheck}" != "steamcmd" ]&&[ "${deptocheck}" == "${steamcmddeptocheck}" ]; then
steamcmdfail=1
fi
done
for steamcmddeptocheck in ${array_deps_required_steamcmd[*]}; do
if [ "${deptocheck}" != "steamcmd" ] && [ "${deptocheck}" == "${steamcmddeptocheck}" ]; then
steamcmdfail=1
fi
done
fi
fi
unset depstatus
@ -302,7 +301,7 @@ fn_deps_detector(){
}
if [ "${commandname}" == "INSTALL" ]; then
if [ "$(whoami)" == "root" ]; then
if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
echo -e ""
echo -e "${lightyellow}Checking Dependencies as root${default}"
echo -e "================================="
@ -326,10 +325,10 @@ fi
info_distro.sh
if [ ! -f "${tmpdir}/dependency-no-check.tmp" ]&&[ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
if [ ! -f "${tmpdir}/dependency-no-check.tmp" ] && [ ! -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
# Check that the distro dependency csv file exists.
fn_check_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv"
if [ -n "${checkflag}" ]&&[ "${checkflag}" == "0" ]; then
if [ -n "${checkflag}" ] && [ "${checkflag}" == "0" ]; then
fn_fetch_file_github "lgsm/data" "${distroid}-${distroversioncsv}.csv" "lgsm/data" "chmodx" "norun" "noforce" "nohash"
fi
fi
@ -338,7 +337,7 @@ fi
if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
depall=$(awk -F, '$1=="all" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
depsteamcmd=$(awk -F, '$1=="steamcmd" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
depshortname=$(awk -v shortname="$shortname" -F, '$1==shortname {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
depshortname=$(awk -v shortname="${shortname}" -F, '$1==shortname {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
# Generate array of missing deps.
array_deps_missing=()
@ -351,11 +350,11 @@ if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
fn_check_loop
# Warn the user that dependency checking is unavailable for their distro.
elif [ "${commandname}" == "INSTALL" ]||[ -n "${checkflag}" ]&&[ "${checkflag}" != "0" ]; then
elif [ "${commandname}" == "INSTALL" ] || [ -n "${checkflag}" ] && [ "${checkflag}" != "0" ]; then
fn_print_warning_nl "LinuxGSM dependency checking currently unavailable for ${distroname}."
# Prevent future dependency checking if unavailable for the distro.
echo "${version}" > "${tmpdir}/dependency-no-check.tmp"
elif [ -f "${tmpdir}/dependency-no-check.tmp" ]; then
elif [ -f "${tmpdir}/dependency-no-check.tmp" ]; then
# Allow LinuxGSM to try a dependency check if LinuxGSM has been recently updated.
nocheckversion=$(cat "${tmpdir}/dependency-no-check.tmp")
if [ "${version}" != "${nocheckversion}" ]; then

1
lgsm/functions/check_executable.sh

@ -8,6 +8,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Check if executable exists
execname=$(basename "${executable}")
if [ ! -f "${executabledir}/${execname}" ]; then
fn_print_fail_nl "executable was not found"
echo -e "* ${executabledir}/${execname}"

36
lgsm/functions/check_ip.sh

@ -10,17 +10,17 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
info_game.sh
ip_commands_array=( "/bin/ip" "/usr/sbin/ip" "ip")
ip_commands_array=("/bin/ip" "/usr/sbin/ip" "ip")
for ip_command in "${ip_commands_array[@]}"; do
if [ "$(command -v ${ip_command} 2>/dev/null)" ]; then
if [ "$(command -v ${ip_command} 2> /dev/null)" ]; then
ipcommand="${ip_command}"
break
fi
done
ethtool_commands_array=( "/bin/ethtool" "/usr/sbin/ethtool" "ethtool")
ethtool_commands_array=("/bin/ethtool" "/usr/sbin/ethtool" "ethtool")
for ethtool_command in "${ethtool_commands_array[@]}"; do
if [ "$(command -v ${ethtool_command} 2>/dev/null)" ]; then
if [ "$(command -v ${ethtool_command} 2> /dev/null)" ]; then
ethtoolcommand="${ethtool_command}"
break
fi
@ -32,27 +32,27 @@ getipwc=$(${ipcommand} -o -4 addr | awk '{print $4}' | grep -oe '\([0-9]\{1,3\}\
# Check if server has multiple IP addresses
# If the IP variable has been set by user.
if [ -n "${ip}" ]&&[ "${ip}" != "0.0.0.0" ]; then
queryips=( "${ip}" )
webadminip=( "${ip}" )
telnetip=( "${ip}" )
if [ -n "${ip}" ] && [ "${ip}" != "0.0.0.0" ]; then
queryips=("${ip}")
webadminip=("${ip}")
telnetip=("${ip}")
# If game config does have an IP set.
elif [ -n "${configip}" ]&&[ "${configip}" != "0.0.0.0" ];then
queryips=( "${configip}" )
elif [ -n "${configip}" ] && [ "${configip}" != "0.0.0.0" ]; then
queryips=("${configip}")
ip="${configip}"
webadminip=( "${configip}" )
telnetip=( "${configip}" )
webadminip=("${configip}")
telnetip=("${configip}")
# If there is only 1 server IP address.
# Some IP details can automaticly use the one IP
elif [ "${getipwc}" == "1" ]; then
queryips=( $(echo "${getip}") )
queryips=($(echo "${getip}"))
ip="0.0.0.0"
webadminip=( "${getip}" )
telnetip=( "${getip}" )
webadminip=("${getip}")
telnetip=("${getip}")
# If no ip is set by the user and server has more than one IP.
else
queryips=( $(echo "${getip}") )
queryips=($(echo "${getip}"))
ip="0.0.0.0"
webadminip=( "${ip}" )
telnetip=( "${ip}" )
webadminip=("${ip}")
telnetip=("${ip}")
fi

4
lgsm/functions/check_last_update.sh

@ -16,8 +16,8 @@ if [ -f "${lockdir}/lastupdate.lock" ]; then
fi
check_status.sh
if [ -f "${lockdir}/lastupdate.lock" ]&&[ "${status}" != "0" ]; then
if [ ! -f "${lockdir}/${selfname}-laststart.lock" ]||[ "${laststart}" -lt "${lastupdate}" ]; then
if [ -f "${lockdir}/lastupdate.lock" ] && [ "${status}" != "0" ]; then
if [ ! -f "${lockdir}/${selfname}-laststart.lock" ] || [ "${laststart}" -lt "${lastupdate}" ]; then
fn_print_info "${selfname} has not been restarted since last update"
fn_script_log_info "${selfname} has not been restarted since last update"
command_restart.sh

6
lgsm/functions/check_logs.sh

@ -7,7 +7,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_check_logs(){
fn_check_logs() {
fn_print_dots "Checking for log files"
fn_print_info_nl "Checking for log files: Creating log files"
checklogs=1
@ -15,12 +15,12 @@ fn_check_logs(){
}
# Create directories for the script and console logs.
if [ ! -d "${lgsmlogdir}" ]||[ ! -d "${consolelogdir}" ]; then
if [ ! -d "${lgsmlogdir}" ] || [ ! -d "${consolelogdir}" ]; then
fn_check_logs
fi
# Create gamelogdir.
# If variable exists gamelogdir exists and log/server does not.
if [ "${gamelogdir}" ]&&[ -d "${gamelogdir}" ]&&[ ! -d "${logdir}/server" ]; then
if [ "${gamelogdir}" ] && [ -d "${gamelogdir}" ] && [ ! -d "${logdir}/server" ]; then
fn_check_logs
fi

66
lgsm/functions/check_permissions.sh

@ -7,7 +7,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_check_ownership(){
fn_check_ownership() {
if [ -f "${rootdir}/${selfname}" ]; then
if [ "$(find "${rootdir}/${selfname}" -not -user "$(whoami)" | wc -l)" -ne "0" ]; then
selfownissue=1
@ -23,7 +23,7 @@ fn_check_ownership(){
filesownissue=1
fi
fi
if [ "${selfownissue}" == "1" ]||[ "${funcownissue}" == "1" ]||[ "${filesownissue}" == "1" ]; then
if [ "${selfownissue}" == "1" ] || [ "${funcownissue}" == "1" ] || [ "${filesownissue}" == "1" ]; then
fn_print_fail_nl "Ownership issues found"
fn_script_log_fatal "Ownership issues found"
fn_print_information_nl "The current user ($(whoami)) does not have ownership of the following files:"
@ -36,7 +36,7 @@ fn_check_ownership(){
if [ "${funcownissue}" == "1" ]; then
find "${functionsdir}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi
if [ "${filesownissue}" == "1" ]; then
if [ "${filesownissue}" == "1" ]; then
find "${serverfiles}" -not -user "$(whoami)" -printf "%u\t%g\t%p\n"
fi
@ -52,7 +52,7 @@ fn_check_ownership(){
fi
}
fn_check_permissions(){
fn_check_permissions() {
if [ -d "${functionsdir}" ]; then
if [ "$(find "${functionsdir}" -type f -not -executable | wc -l)" -ne "0" ]; then
fn_print_fail_nl "Permissions issues found"
@ -78,7 +78,7 @@ fn_check_permissions(){
# Grab the first and second digit for user and group permission.
userrootdirperm="${rootdirperm:0:1}"
grouprootdirperm="${rootdirperm:1:1}"
if [ "${userrootdirperm}" != "7" ]&&[ "${grouprootdirperm}" != "7" ]; then
if [ "${userrootdirperm}" != "7" ] && [ "${grouprootdirperm}" != "7" ]; then
fn_print_fail_nl "Permissions issues found"
fn_script_log_fatal "Permissions issues found"
fn_print_information_nl "The following directory does not have the correct permissions:"
@ -102,9 +102,9 @@ fn_check_permissions(){
userexecperm="${execperm:0:1}"
groupexecperm="${execperm:1:1}"
# Check for invalid user permission.
if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ] || [ "${userexecperm}" == "6" ]; then
# If user permission is invalid, then check for invalid group permissions.
if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ] || [ "${groupexecperm}" == "6" ]; then
# If permission issues are found.
fn_print_warn_nl "Permissions issue found"
fn_script_log_warn "Permissions issue found"
@ -122,18 +122,18 @@ fn_check_permissions(){
# Grab the first and second digit for user and group permission.
userexecperm="${execperm:0:1}"
groupexecperm="${execperm:1:1}"
if [ "${userexecperm}" == "0" ]||[ "${userexecperm}" == "2" ]||[ "${userexecperm}" == "4" ]||[ "${userexecperm}" == "6" ]; then
if [ "${groupexecperm}" == "0" ]||[ "${groupexecperm}" == "2" ]||[ "${groupexecperm}" == "4" ]||[ "${groupexecperm}" == "6" ]; then
# If errors are still found.
fn_print_fail_nl "The following file could not be set executable:"
ls -l "${executabledir}/${execname}"
fn_script_log_warn "The following file could not be set executable:"
fn_script_log_info "${executabledir}/${execname}"
if [ "${monitorflag}" == "1" ]; then
alert="permissions"
alert.sh
fi
core_exit.sh
if [ "${userexecperm}" == "0" ] || [ "${userexecperm}" == "2" ] || [ "${userexecperm}" == "4" ] || [ "${userexecperm}" == "6" ]; then
if [ "${groupexecperm}" == "0" ] || [ "${groupexecperm}" == "2" ] || [ "${groupexecperm}" == "4" ] || [ "${groupexecperm}" == "6" ]; then
# If errors are still found.
fn_print_fail_nl "The following file could not be set executable:"
ls -l "${executabledir}/${execname}"
fn_script_log_warn "The following file could not be set executable:"
fn_script_log_info "${executabledir}/${execname}"
if [ "${monitorflag}" == "1" ]; then
alert="permissions"
alert.sh
fi
core_exit.sh
fi
fi
fi
@ -144,26 +144,26 @@ fn_check_permissions(){
## The following fn_sys_perm_* functions checks for permission errors in /sys directory.
# Checks for permission errors in /sys directory.
fn_sys_perm_errors_detect(){
fn_sys_perm_errors_detect() {
# Reset test variables.
sysdirpermerror="0"
classdirpermerror="0"
netdirpermerror="0"
# Check permissions.
# /sys, /sys/class and /sys/class/net should be readable & executable.
if [ ! -r "/sys" ]||[ ! -x "/sys" ]; then
if [ ! -r "/sys" ] || [ ! -x "/sys" ]; then
sysdirpermerror="1"
fi
if [ ! -r "/sys/class" ]||[ ! -x "/sys/class" ]; then
if [ ! -r "/sys/class" ] || [ ! -x "/sys/class" ]; then
classdirpermerror="1"
fi
if [ ! -r "/sys/class/net" ]||[ ! -x "/sys/class/net" ]; then
if [ ! -r "/sys/class/net" ] || [ ! -x "/sys/class/net" ]; then
netdirpermerror="1"
fi
}
# Display a message on how to fix the issue manually.
fn_sys_perm_fix_manually_msg(){
fn_sys_perm_fix_manually_msg() {
echo -e ""
fn_print_information_nl "This error causes servers to fail starting properly"
fn_script_log_info "This error causes servers to fail starting properly."
@ -180,7 +180,7 @@ fn_sys_perm_fix_manually_msg(){
}
# Attempt to fix /sys related permission errors if sudo is available, exits otherwise.
fn_sys_perm_errors_fix(){
fn_sys_perm_errors_fix() {
if sudo -n true > /dev/null 2>&1; then
fn_print_dots "Automatically fixing /sys permissions"
fn_script_log_info "Automatically fixing /sys permissions."
@ -195,7 +195,7 @@ fn_sys_perm_errors_fix(){
fi
# Run check again to see if it's fixed.
fn_sys_perm_errors_detect
if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
if [ "${sysdirpermerror}" == "1" ] || [ "${classdirpermerror}" == "1" ] || [ "${netdirpermerror}" == "1" ]; then
fn_print_error "Could not fix /sys permissions"
fn_script_log_error "Could not fix /sys permissions."
fn_sleep_time
@ -206,16 +206,16 @@ fn_sys_perm_errors_fix(){
fn_script_log_pass "Permissions in /sys fixed"
fi
else
# Show the user how to fix.
fn_sys_perm_fix_manually_msg
# Show the user how to fix.
fn_sys_perm_fix_manually_msg
fi
}
# Processes to the /sys related permission errors check & fix/info.
fn_sys_perm_error_process(){
fn_sys_perm_error_process() {
fn_sys_perm_errors_detect
# If any error was found.
if [ "${sysdirpermerror}" == "1" ]||[ "${classdirpermerror}" == "1" ]||[ "${netdirpermerror}" == "1" ]; then
if [ "${sysdirpermerror}" == "1" ] || [ "${classdirpermerror}" == "1" ] || [ "${netdirpermerror}" == "1" ]; then
fn_print_error_nl "Permission error(s) found in /sys"
fn_script_log_error "Permission error(s) found in /sys"
# Run the fix
@ -223,10 +223,8 @@ fn_sys_perm_error_process(){
fi
}
# Run perm error detect & fix/alert functions on /sys directories.
## Run checks.
if [ "$(whoami)" != "root" ]; then
## Run permisions checks when not root or docker.
if [ "$(whoami)" != "root" ] && [ ! -f /.dockerenv ]; then
fn_check_ownership
fn_check_permissions
if [ "${commandname}" == "START" ]; then

2
lgsm/functions/check_root.sh

@ -7,7 +7,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
if [ "$(whoami)" = "root" ]; then
if [ "$(whoami)" == "root" ] && [ ! -f /.dockerenv ]; then
if [ "${commandname}" != "INSTALL" ]; then
fn_print_fail_nl "Do NOT run this script as root!"
if [ -d "${lgsmlogdir}" ]; then

2
lgsm/functions/check_status.sh

@ -7,4 +7,4 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
status=$(tmux list-sessions -F "#{session_name}" 2>/dev/null | grep -Ecx "^${sessionname}")
status=$(tmux list-sessions -F "#{session_name}" 2> /dev/null | grep -Ecx "^${sessionname}")

2
lgsm/functions/check_steamcmd.sh

@ -12,7 +12,7 @@ core_steamcmd.sh
fn_check_steamcmd_clear
fn_check_steamcmd
if [ ${shortname} == "ark" ]; then
if [ "${shortname}" == "ark" ]; then
fn_check_steamcmd_ark
fi
fn_check_steamcmd_dir

6
lgsm/functions/check_system_requirements.sh

@ -26,19 +26,19 @@ elif [ "${shortname}" == "arma3" ]; then
elif [ "${shortname}" == "rust" ]; then
ramrequirementmb="4000"
ramrequirementgb="4"
elif [ "${shortname}" == "mc" ]||[ "${shortname}" == "pmc" ]||[ "${shortname}" == "wmc" ]; then
elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "wmc" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
elif [ "${shortname}" == "pstbs" ]; then
ramrequirementmb="2000"
ramrequirementgb="2"
elif [ "${shortname}" == "ns2" ]||[ "${shortname}" == "ns2c" ]; then
elif [ "${shortname}" == "ns2" ] || [ "${shortname}" == "ns2c" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
elif [ "${shortname}" == "st" ]; then
ramrequirementmb="1000"
ramrequirementgb="1"
elif [ "${shortname}" == "pvr" ];then
elif [ "${shortname}" == "pvr" ]; then
ramrequirementmb="2000"
ramrequirementgb="2"
fi

6
lgsm/functions/check_tmuxception.sh

@ -7,8 +7,8 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_check_is_in_tmux(){
if [ "${TMUX}" ]; then
fn_check_is_in_tmux() {
if [ "${TMUX}" ]; then
fn_print_fail_nl "tmuxception error: Sorry Cobb you cannot start a tmux session inside of a tmux session."
fn_script_log_fatal "Tmuxception error: Attempted to start a tmux session inside of a tmux session."
fn_print_information_nl "LinuxGSM creates a tmux session when starting the server."
@ -18,7 +18,7 @@ fn_check_is_in_tmux(){
fi
}
fn_check_is_in_screen(){
fn_check_is_in_screen() {
if [ "${STY}" ]; then
fn_print_fail_nl "tmuxception error: Sorry Cobb you cannot start a tmux session inside of a screen session."
fn_script_log_fatal "Tmuxception error: Attempted to start a tmux session inside of a screen session."

2
lgsm/functions/check_version.sh

@ -8,7 +8,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
if [ -n "${modulesversion}" ]&&[ -n "${version}" ]&&[ "${version}" != "${modulesversion}" ]; then
if [ -n "${modulesversion}" ] && [ -n "${version}" ] && [ "${version}" != "${modulesversion}" ]; then
exitbypass=1
echo -e ""
fn_print_error_nl "LinuxGSM version mismatch"

57
lgsm/functions/command_backup.sh

@ -13,7 +13,7 @@ fn_firstcommand_set
check.sh
# Trap to remove lockfile on quit.
fn_backup_trap(){
fn_backup_trap() {
echo -e ""
echo -en "backup ${backupname}.tar.gz..."
fn_print_canceled_eol_nl
@ -30,7 +30,7 @@ fn_backup_trap(){
}
# Check if a backup is pending or has been aborted using backup.lock.
fn_backup_check_lockfile(){
fn_backup_check_lockfile() {
if [ -f "${lockdir}/backup.lock" ]; then
fn_print_info_nl "Lock file found: Backup is currently running"
fn_script_log_error "Lock file found: Backup is currently running: ${lockdir}/backup.lock"
@ -39,7 +39,7 @@ fn_backup_check_lockfile(){
}
# Initialisation.
fn_backup_init(){
fn_backup_init() {
# Backup file name with selfname and current date.
backupname="${selfname}-$(date '+%Y-%m-%d-%H%M%S')"
@ -47,7 +47,7 @@ fn_backup_init(){
fn_print_dots "Backup starting"
fn_script_log_info "Backup starting"
fn_print_ok_nl "Backup starting"
if [ ! -d "${backupdir}" ]||[ "${backupcount}" == "0" ]; then
if [ ! -d "${backupdir}" ] || [ "${backupcount}" == "0" ]; then
fn_print_info_nl "There are no previous backups"
else
if [ "${lastbackupdaysago}" == "0" ]; then
@ -62,7 +62,7 @@ fn_backup_init(){
}
# Check if server is started and whether to stop it.
fn_backup_stop_server(){
fn_backup_stop_server() {
check_status.sh
# Server is running but will not be stopped.
if [ "${stoponbackup}" == "off" ]; then
@ -82,7 +82,7 @@ fn_backup_stop_server(){
}
# Create required folders.
fn_backup_dir(){
fn_backup_dir() {
# Create backupdir if it doesn't exist.
if [ ! -d "${backupdir}" ]; then
mkdir -p "${backupdir}"
@ -90,31 +90,32 @@ fn_backup_dir(){
}
# Migrate Backups from old dir before refactor
fn_backup_migrate_olddir(){
fn_backup_migrate_olddir() {
# Check if old backup dir is there before the refactor and move the backups
if [ -d "${rootdir}/backups" ]; then
if [ "${rootdir}/backups" != "${backupdir}" ]; then
fn_print_dots "Backup directory is being migrated"
fn_script_log_info "Backup directory is being migrated"
fn_script_log_info "${rootdir}/backups > ${backupdir}"
mv "${rootdir}/backups/"* "${backupdir}" 2>/dev/null
mv "${rootdir}/backups/"* "${backupdir}" 2> /dev/null
exitcode=$?
if [ "${exitcode}" -eq 0 ]; then
rmdir "${rootdir}/backups" 2>/dev/null
if [ "${exitcode}" == 0 ]; then
rmdir "${rootdir}/backups" 2> /dev/null
exitcode=$?
fi
if [ "${exitcode}" -eq 0 ]; then
fn_print_ok_nl "Backup directory is being migrated"
fn_script_log_pass "Backup directory is being migrated"
else
if [ "${exitcode}" != 0 ]; then
fn_print_error_nl "Backup directory is being migrated"
fn_script_log_error "Backup directory is being migrated"
else
fn_print_ok_nl "Backup directory is being migrated"
fn_script_log_pass "Backup directory is being migrated"
fi
fi
fi
}
fn_backup_create_lockfile(){
fn_backup_create_lockfile() {
# Create lockfile.
date '+%s' > "${lockdir}/backup.lock"
fn_script_log_info "Lockfile generated"
@ -124,7 +125,7 @@ fn_backup_create_lockfile(){
}
# Compressing files.
fn_backup_compression(){
fn_backup_compression() {
# Tells how much will be compressed using rootdirduexbackup value from info_distro and prompt for continue.
fn_print_info "A total of ${rootdirduexbackup} will be compressed."
fn_script_log_info "A total of ${rootdirduexbackup} will be compressed: ${backupdir}/${backupname}.tar.gz"
@ -133,7 +134,7 @@ fn_backup_compression(){
excludedir=$(fn_backup_relpath)
# Check that excludedir is a valid path.
if [ ! -d "${excludedir}" ] ; then
if [ ! -d "${excludedir}" ]; then
fn_print_fail_nl "Problem identifying the previous backup directory for exclusion."
fn_script_log_fatal "Problem identifying the previous backup directory for exclusion"
core_exit.sh
@ -157,17 +158,17 @@ fn_backup_compression(){
}
# Clear old backups according to maxbackups and maxbackupdays variables.
fn_backup_prune(){
fn_backup_prune() {
# Clear if backup variables are set.
if [ "${maxbackups}" ]&&[ -n "${maxbackupdays}" ]; then
if [ "${maxbackups}" ] && [ -n "${maxbackupdays}" ]; then
# How many backups there are.
info_distro.sh
# How many backups exceed maxbackups.
backupquotadiff=$((backupcount-maxbackups))
backupquotadiff=$((backupcount - maxbackups))
# How many backups exceed maxbackupdays.
backupsoudatedcount=$(find "${backupdir}"/ -type f -name "*.tar.gz" -mtime +"${maxbackupdays}"|wc -l)
backupsoudatedcount=$(find "${backupdir}"/ -type f -name "*.tar.gz" -mtime +"${maxbackupdays}" | wc -l)
# If anything can be cleared.
if [ "${backupquotadiff}" -gt "0" ]||[ "${backupsoudatedcount}" -gt "0" ]; then
if [ "${backupquotadiff}" -gt "0" ] || [ "${backupsoudatedcount}" -gt "0" ]; then
fn_print_dots "Pruning"
fn_script_log_info "Backup pruning activated"
fn_print_ok_nl "Pruning"
@ -220,32 +221,32 @@ fn_backup_relpath() {
# Compare the leading entries of each array. These common elements will be clipped off.
# for the relative path output.
for ((base=0; base<${#rdirtoks[@]}; base++)); do
for ((base = 0; base < ${#rdirtoks[@]}; base++)); do
[[ "${rdirtoks[$base]}" != "${bdirtoks[$base]}" ]] && break
done
# Next, climb out of the remaining rootdir location with updir references.
for ((x=base;x<${#rdirtoks[@]};x++)); do
for ((x = base; x < ${#rdirtoks[@]}; x++)); do
echo -n "../"
done
# Climb down the remaining components of the backupdir location.
for ((x=base;x<$(( ${#bdirtoks[@]} - 1 ));x++)); do
for ((x = base; x < $((${#bdirtoks[@]} - 1)); x++)); do
echo -n "${bdirtoks[$x]}/"
done
# In the event there were no directories left in the backupdir above to
# traverse down, just add a newline. Otherwise at this point, there is
# one remaining directory component in the backupdir to navigate.
if (( "$base" < "${#bdirtoks[@]}" )) ; then
echo -e "${bdirtoks[ $(( ${#bdirtoks[@]} - 1)) ]}"
if (("$base" < "${#bdirtoks[@]}")); then
echo -e "${bdirtoks[$((${#bdirtoks[@]} - 1))]}"
else
echo
fi
}
# Start the server if it was stopped for the backup.
fn_backup_start_server(){
fn_backup_start_server() {
if [ -n "${startserver}" ]; then
exitbypass=1
command_start.sh

28
lgsm/functions/command_check_update.sh

@ -14,12 +14,26 @@ fn_print_dots ""
check.sh
core_logs.sh
core_steamcmd.sh
check_steamcmd.sh
fn_update_steamcmd_localbuild
fn_update_steamcmd_remotebuild
fn_update_steamcmd_compare
if [ "${shortname}" == "ts3" ]; then
update_ts3.sh
elif [ "${shortname}" == "mc" ]; then
update_minecraft.sh
elif [ "${shortname}" == "mcb" ]; then
update_minecraft_bedrock.sh
elif [ "${shortname}" == "pmc" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then
update_papermc.sh
elif [ "${shortname}" == "fctr" ]; then
update_factorio.sh
elif [ "${shortname}" == "mta" ]; then
update_mta.sh
elif [ "${shortname}" == "jk2" ]; then
update_jediknight2.sh
elif [ "${shortname}" == "vints" ]; then
update_vintagestory.sh
elif [ "${shortname}" == "ut99" ]; then
update_ut99.sh
else
update_steamcmd.sh
fi
core_exit.sh

29
lgsm/functions/command_debug.sh

@ -11,7 +11,7 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_set
# Trap to remove lockfile on quit.
fn_lockfile_trap(){
fn_lockfile_trap() {
# Remove lockfile.
rm -f "${lockdir:?}/${selfname}.lock"
# resets terminal. Servers can sometimes mess up the terminal on exit.
@ -28,11 +28,10 @@ check.sh
fix.sh
info_distro.sh
info_game.sh
# NOTE: Check if works with server without parms. Could be intergrated in to info_parms.sh.
fn_print_header
{
echo -e "${lightblue}Distro:\t\t${default}${distroname}"
echo -e "${lightblue}Arch:\t\t${default}${arch}"
echo -e "${lightblue}Architecture:\t\t${default}${arch}"
echo -e "${lightblue}Kernel:\t\t${default}${kernel}"
echo -e "${lightblue}Hostname:\t\t${default}${HOSTNAME}"
echo -e "${lightblue}tmux:\t\t${default}${tmuxv}"
@ -40,8 +39,9 @@ fn_print_header
echo -e "${lightblue}Free Memory:\t\t${default}${physmemfree}"
echo -e "${lightblue}Free Disk:\t\t${default}${availspace}"
} | column -s $'\t' -t
# glibc required.
if [ "${glibc}" ]; then
if [ -n "${glibc}" ]; then
if [ "${glibc}" == "null" ]; then
# Glibc is not required.
:
@ -54,7 +54,7 @@ if [ "${glibc}" ]; then
fi
fi
# Server IP
# Server IP.
echo -e "${lightblue}Game Server IP:\t${default}${ip}:${port}"
# External server IP.
@ -63,6 +63,7 @@ if [ "${extip}" ]; then
echo -e "${lightblue}Internet IP:\t${default}${extip}:${port}"
fi
fi
# Server password.
if [ "${serverpassword}" ]; then
echo -e "${lightblue}Server password:\t${default}${serverpassword}"
@ -70,7 +71,7 @@ fi
fn_reload_startparameters
echo -e "${lightblue}Start parameters:${default}"
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsrc" ]; then
if [ "${engine}" == "source" ] || [ "${engine}" == "goldsrc" ]; then
echo -e "${executable} ${startparameters} -debug"
elif [ "${engine}" == "quake" ]; then
echo -e "${executable} ${startparameters} -condebug"
@ -78,7 +79,7 @@ else
echo -e "${preexecutable} ${executable} ${startparameters}"
fi
echo -e ""
echo -e "Use for identifying server issues only!"
echo -e "Use debug for identifying server issues only!"
echo -e "Press CTRL+c to drop out of debug mode."
fn_print_warning_nl "If ${selfname} is already running it will be stopped."
echo -e ""
@ -111,7 +112,7 @@ else
fi
# Note: do not add double quotes to ${executable} ${startparameters}.
if [ "${engine}" == "source" ]||[ "${engine}" == "goldsrc" ]; then
if [ "${engine}" == "source" ] || [ "${engine}" == "goldsrc" ]; then
eval "${executable} ${startparameters} -debug"
elif [ "${engine}" == "quake" ]; then
eval "${executable} ${startparameters} -condebug"
@ -120,6 +121,18 @@ else
eval "${preexecutable} ${executable} ${startparameters}"
fi
if [ $? -ne 0 ]; then
fn_print_error_nl "Server has stopped: exit code: $?"
fn_script_log_error "Server has stopped: exit code: $?"
fn_print_error_nl "Press ENTER to exit debug mode"
read -r
else
fn_print_ok_nl "Server has stopped"
fn_script_log_pass "Server has stopped"
fn_print_ok_nl "Press ENTER to exit debug mode"
read -r
fi
fn_lockfile_trap
fn_print_dots "Stopping debug"

4
lgsm/functions/command_details.sh

@ -15,7 +15,7 @@ check.sh
info_distro.sh
info_game.sh
info_messages.sh
if [ "${querymode}" == "2" ]||[ "${querymode}" == "3" ]; then
if [ "${querymode}" == "2" ] || [ "${querymode}" == "3" ]; then
for queryip in "${queryips[@]}"; do
query_gamedig.sh
if [ "${querystatus}" == "0" ]; then
@ -30,7 +30,7 @@ fn_info_message_gameserver
fn_info_message_script
fn_info_message_backup
# Some game servers do not have parms.
if [ "${shortname}" != "jc2" ]&&[ "${shortname}" != "dst" ]&&[ "${shortname}" != "pz" ]&&[ "${engine}" != "renderware" ]; then
if [ "${shortname}" != "jc2" ] && [ "${shortname}" != "dst" ] && [ "${shortname}" != "pz" ] && [ "${engine}" != "renderware" ]; then
fn_info_message_commandlineparms
fi
fn_info_message_ports_edit

2
lgsm/functions/command_dev_debug.sh

@ -11,7 +11,7 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_firstcommand_reset
if [ -f "${rootdir}/.dev-debug" ]; then
rm "${rootdir:?}/.dev-debug"
rm -f "${rootdir:?}/.dev-debug"
fn_print_ok_nl "Disabled dev-debug"
fn_script_log_info "Disabled dev-debug"
else

36
lgsm/functions/command_dev_detect_deps.sh

@ -15,26 +15,26 @@ echo -e "Dependencies Checker"
echo -e "================================="
echo -e "Checking directory: "
echo -e "${serverfiles}"
if [ "$(command -v eu-readelf 2>/dev/null)" ]; then
if [ "$(command -v eu-readelf 2> /dev/null)" ]; then
readelf=eu-readelf
elif [ "$(command -v readelf 2>/dev/null)" ]; then
elif [ "$(command -v readelf 2> /dev/null)" ]; then
readelf=readelf
else
echo -e "readelf/eu-readelf not installed"
fi
files=$(find "${serverfiles}" | wc -l)
find "${serverfiles}" -type f -print0 |
while IFS= read -r -d $'\0' line; do
if [ "${readelf}" == "eu-readelf" ]; then
${readelf} -d "${line}" 2>/dev/null | grep NEEDED| awk '{ print $4 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
else
${readelf} -d "${line}" 2>/dev/null | grep NEEDED | awk '{ print $5 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
fi
echo -n "${i} / ${files}" $'\r'
((i++))
done
find "${serverfiles}" -type f -print0 \
| while IFS= read -r -d $'\0' line; do
if [ "${readelf}" == "eu-readelf" ]; then
${readelf} -d "${line}" 2> /dev/null | grep NEEDED | awk '{ print $4 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
else
${readelf} -d "${line}" 2> /dev/null | grep NEEDED | awk '{ print $5 }' | sed 's/\[//g;s/\]//g' >> "${tmpdir}/.depdetect_readelf"
fi
echo -n "${i} / ${files}" $'\r'
((i++))
done
sort "${tmpdir}/.depdetect_readelf" |uniq >"${tmpdir}/.depdetect_readelf_uniq"
sort "${tmpdir}/.depdetect_readelf" | uniq > "${tmpdir}/.depdetect_readelf_uniq"
touch "${tmpdir}/.depdetect_centos_list"
touch "${tmpdir}/.depdetect_ubuntu_list"
@ -42,7 +42,7 @@ touch "${tmpdir}/.depdetect_debian_list"
while read -r lib; do
echo -e "${lib}"
libs_array=( libm.so.6 libc.so.6 libtcmalloc_minimal.so.4 libpthread.so.0 libdl.so.2 libnsl.so.1 libgcc_s.so.1 librt.so.1 ld-linux.so.2 libdbus-glib-1.so.2 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libnm-glib.so.4 libnm-util.so.2 )
libs_array=(libm.so.6 libc.so.6 libtcmalloc_minimal.so.4 libpthread.so.0 libdl.so.2 libnsl.so.1 libgcc_s.so.1 librt.so.1 ld-linux.so.2 libdbus-glib-1.so.2 libgio-2.0.so.0 libglib-2.0.so.0 libGL.so.1 libgobject-2.0.so.0 libnm-glib.so.4 libnm-util.so.2)
for lib_file in "${libs_array[@]}"; do
if [ "${lib}" == "${lib_file}" ]; then
echo -e "glibc.i686" >> "${tmpdir}/.depdetect_centos_list"
@ -52,7 +52,7 @@ while read -r lib; do
fi
done
libs_array=( libawt.so libjava.so libjli.so libjvm.so libnet.so libnio.so libverify.so )
libs_array=(libawt.so libjava.so libjli.so libjvm.so libnet.so libnio.so libverify.so)
for lib_file in "${libs_array[@]}"; do
if [ "${lib}" == "${lib_file}" ]; then
echo -e "java-1.8.0-openjdk" >> "${tmpdir}/.depdetect_centos_list"
@ -62,7 +62,7 @@ while read -r lib; do
fi
done
libs_array=( libtier0.so libtier0_srv.so libvstdlib_srv.so Core.so libvstdlib.so libtier0_s.so Editor.so Engine.so liblua.so libsteam_api.so ld-linux-x86-64.so.2 libPhysX3_x86.so libPhysX3Common_x86.so libPhysX3Cooking_x86.so)
libs_array=(libtier0.so libtier0_srv.so libvstdlib_srv.so Core.so libvstdlib.so libtier0_s.so Editor.so Engine.so liblua.so libsteam_api.so ld-linux-x86-64.so.2 libPhysX3_x86.so libPhysX3Common_x86.so libPhysX3Cooking_x86.so)
for lib_file in "${libs_array[@]}"; do
# Known shared libs what dont requires dependencies.
if [ "${lib}" == "${lib_file}" ]; then
@ -85,12 +85,12 @@ while read -r lib; do
echo -e "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
echo -e "libcurl4-gnutls-dev:i386" >> "${tmpdir}/.depdetect_debian_list"
libdetected=1
elif [ "${lib}" == "libspeex.so.1" ]||[ "${lib}" == "libspeexdsp.so.1" ]; then
elif [ "${lib}" == "libspeex.so.1" ] || [ "${lib}" == "libspeexdsp.so.1" ]; then
echo -e "speex.i686" >> "${tmpdir}/.depdetect_centos_list"
echo -e "speex:i386" >> "${tmpdir}/.depdetect_ubuntu_list"
echo -e "speex:i386" >> "${tmpdir}/.depdetect_debian_list"
libdetected=1
elif [ "${lib}" == "./libSDL-1.2.so.0" ]||[ "${lib}" == "libSDL-1.2.so.0" ]; then
elif [ "${lib}" == "./libSDL-1.2.so.0" ] || [ "${lib}" == "libSDL-1.2.so.0" ]; then
echo -e "SDL.i686" >> "${tmpdir}/.depdetect_centos_list"
echo -e "libsdl1.2debian" >> "${tmpdir}/.depdetect_ubuntu_list"
echo -e "libsdl1.2debian" >> "${tmpdir}/.depdetect_debian_list"

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

Loading…
Cancel
Save