[PR #1255] [MERGED] Command: mods-install/update/remove #3305

Closed
opened 2026-02-27 03:54:01 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/GameServerManagers/LinuxGSM/pull/1255
Author: @UltimateByte
Created: 1/16/2017
Status: Merged
Merged: 1/26/2017
Merged by: @dgibbs64

Base: developHead: feature/ultimatebyte-911


📝 Commits (10+)

📊 Changes

17 files changed (+989 additions, -19 deletions)

View changed files

📝 lgsm/functions/check.sh (+9 -1)
📝 lgsm/functions/check_deps.sh (+2 -2)
lgsm/functions/check_executable.sh (+18 -0)
📝 lgsm/functions/command_backup.sh (+2 -2)
📝 lgsm/functions/command_dev_debug.sh (+0 -1)
📝 lgsm/functions/command_dev_detect_ldd.sh (+2 -2)
lgsm/functions/command_mods_install.sh (+117 -0)
lgsm/functions/command_mods_remove.sh (+137 -0)
lgsm/functions/command_mods_update.sh (+110 -0)
📝 lgsm/functions/command_update_functions.sh (+1 -0)
📝 lgsm/functions/command_validate.sh (+4 -1)
📝 lgsm/functions/core_dl.sh (+6 -6)
📝 lgsm/functions/core_functions.sh (+31 -0)
📝 lgsm/functions/core_getopt.sh (+20 -2)
📝 lgsm/functions/core_messages.sh (+2 -2)
lgsm/functions/mods_core.sh (+455 -0)
lgsm/functions/mods_list.sh (+73 -0)

📄 Description

Installing and keeping external game mods updated have never been so easy.

Introducing

./gameserver mods-install
./gameserver mods-update
./gameserver mods-remove

Fixes #631

demo

Features

  • Install / update / remove a mod
  • Get latest mod URL when needed by scraping host's website
  • Show available mods for a given game/engine (allows for excluding games)
  • Keep track of all installed mods in order to update or remove them
  • Ability to set updates policies (for example: NOUPDATE for a mod that shouldn't be overwritten)
  • Builds a file list of any installed mod in order to cleanly remove any file from it
  • Ability to preserve config files upon mod update
  • Handles many possible errors
  • Allows for specific post-install fixes
  • Allows for easy new mods support
  • Loads of comments and descriptions.

Adding mods support
Everything has been made to allow for adding a mod with two line edits in best case scenari:

  1. Add your mod info into mods_list.sh, in the form of mod_info_name=() array
  2. Add this array to mods_global_array=()
  3. (OPTIONAL) Scrape latest URL if needed, using fn_mods_scrape_urls functions.
  4. (OPTIONAL), Apply some post-install tasks if needed with fn_postinstall_tasks inside mods_core.sh

It will might be polished a little before merging.
Please, point out anything you think could be improved.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/GameServerManagers/LinuxGSM/pull/1255 **Author:** [@UltimateByte](https://github.com/UltimateByte) **Created:** 1/16/2017 **Status:** ✅ Merged **Merged:** 1/26/2017 **Merged by:** [@dgibbs64](https://github.com/dgibbs64) **Base:** `develop` ← **Head:** `feature/ultimatebyte-911` --- ### 📝 Commits (10+) - [`4cca1e8`](https://github.com/GameServerManagers/LinuxGSM/commit/4cca1e82dfcd210ff8939cec527aa065aaffa866) Mods install command - [`f677f13`](https://github.com/GameServerManagers/LinuxGSM/commit/f677f13b666eff74745a44cb4837d74081bd3859) Mods remove init - [`18d6168`](https://github.com/GameServerManagers/LinuxGSM/commit/18d6168c30e7bfaf11f46867b712ae55397d7e83) Command mods update init - [`24fb13f`](https://github.com/GameServerManagers/LinuxGSM/commit/24fb13ffac418a903d32a5bf8b0d8125302877a7) Declare mods functions - [`f303ce2`](https://github.com/GameServerManagers/LinuxGSM/commit/f303ce2eb56acf1596fbaee7749db7d609c47e5c) Mods install/update/remove opt - [`cc07590`](https://github.com/GameServerManagers/LinuxGSM/commit/cc07590575e1bfcbd2da9c0dba4498feebf270fb) Base for mods_list.sh - [`05b4e3b`](https://github.com/GameServerManagers/LinuxGSM/commit/05b4e3b06a675eda7efb2fb44b87a6223c45e076) Checks done differently - [`5c8b59d`](https://github.com/GameServerManagers/LinuxGSM/commit/5c8b59db19c6ce0167462dcfe9699faa05d9ce21) Checks done differently - [`29d2b51`](https://github.com/GameServerManagers/LinuxGSM/commit/29d2b51085ac7b5a6d134f9203271b0eeac172cf) No need to check for systemdir, lgsm already does - [`77e2043`](https://github.com/GameServerManagers/LinuxGSM/commit/77e2043700cad4893ef80935c43d8b679c7a6c55) checks moves to mods_list.sh ### 📊 Changes **17 files changed** (+989 additions, -19 deletions) <details> <summary>View changed files</summary> 📝 `lgsm/functions/check.sh` (+9 -1) 📝 `lgsm/functions/check_deps.sh` (+2 -2) ➕ `lgsm/functions/check_executable.sh` (+18 -0) 📝 `lgsm/functions/command_backup.sh` (+2 -2) 📝 `lgsm/functions/command_dev_debug.sh` (+0 -1) 📝 `lgsm/functions/command_dev_detect_ldd.sh` (+2 -2) ➕ `lgsm/functions/command_mods_install.sh` (+117 -0) ➕ `lgsm/functions/command_mods_remove.sh` (+137 -0) ➕ `lgsm/functions/command_mods_update.sh` (+110 -0) 📝 `lgsm/functions/command_update_functions.sh` (+1 -0) 📝 `lgsm/functions/command_validate.sh` (+4 -1) 📝 `lgsm/functions/core_dl.sh` (+6 -6) 📝 `lgsm/functions/core_functions.sh` (+31 -0) 📝 `lgsm/functions/core_getopt.sh` (+20 -2) 📝 `lgsm/functions/core_messages.sh` (+2 -2) ➕ `lgsm/functions/mods_core.sh` (+455 -0) ➕ `lgsm/functions/mods_list.sh` (+73 -0) </details> ### 📄 Description Installing and keeping external game mods updated have never been so easy. Introducing ````bash ./gameserver mods-install ./gameserver mods-update ./gameserver mods-remove ```` Fixes #631 ![demo](http://image.noelshack.com/fichiers/2017/03/1484604649-mods-install-demo2.png) **Features** - Install / update / remove a mod - Get latest mod URL when needed by scraping host's website - Show available mods for a given game/engine (allows for excluding games) - Keep track of all installed mods in order to update or remove them - Ability to set updates policies (for example: NOUPDATE for a mod that shouldn't be overwritten) - Builds a file list of any installed mod in order to cleanly remove any file from it - Ability to preserve config files upon mod update - Handles many possible errors - Allows for specific post-install fixes - Allows for easy new mods support - Loads of comments and descriptions. **Adding mods support** Everything has been made to allow for adding a mod with two line edits in best case scenari: 1) Add your mod info into mods_list.sh, in the form of mod_info_name=() array 2) Add this array to mods_global_array=() 3) (OPTIONAL) Scrape latest URL if needed, using fn_mods_scrape_urls functions. 4) (OPTIONAL), Apply some post-install tasks if needed with fn_postinstall_tasks inside mods_core.sh It will might be polished a little before merging. Please, point out anything you think could be improved. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 03:54:01 +03:00
Sign in to join this conversation.
No labels
Atomic
Epic
cannot reproduce
command: backup
command: console
command: debug
command: details
command: fast-dl
command: install
command: mods
command: monitor
command: post-details
command: restart
command: send
command: start
command: stop
command: update
command: update-lgsm
command: validate
command: wipe
distro: AlmaLinux
distro: Arch Linux
distro: CentOS
distro: Debian
distro: Fedora
distro: RedHat
distro: Rocky Linux
distro: Ubuntu
distro: openSUSE
engine: goldsrc
engine: source
game: 7 Days to Die
game: ARMA 3
game: Ark: Survival Evolved
game: Assetto Corsa
game: Avorion
game: BATTALION: Legacy
game: Barotrauma
game: Battalion 1944
game: Battlefield 1942
game: Black Mesa: Deathmatch
game: Blade Symphony
game: Call of Duty 2
game: Call of Duty 4
game: Call of Duty: United Offensive
game: Counter-Strike 1.6
game: Counter-Strike 2
game: Counter-Strike: Global Offensive
game: Counter-Strike: Source
game: Day of Infamy
game: Dayz
game: Death Match Classic
game: Don't Starve Together
game: ET: Legacy
game: Eco
game: Factorio
game: Factorio
game: Garry's Mod
game: Half-Life
game: Hurtword
game: Insurgecy
game: Insurgecy
game: Insurgency: Sandstorm
game: Just Cause 3
game: Killing Floor
game: Killing Floor 2
game: Left 4 Dead 2
game: Minecraft
game: Minecraft Bedrock
game: Mordhau
game: Multi Theft Auto
game: Mumble
game: Natural Selection 2
game: No More Room in Hell
game: Pavlov VR
game: Post Scriptum
game: Project Zomboid
game: Quake 3
game: QuakeWorld
game: Red Orchestra: Ostfront 41-45
game: Return to Castle Wolfenstein
game: Rising World
game: Rust
game: San Andreas Multiplayer
game: Satisfactory
game: Soldat
game: Soldier of Fortune 2
game: Squad
game: Squad 44
game: Starbound
game: Stationeers
game: Sven Co-op
game: Team Fortress 2
game: Teamspeak 3
game: Teeworlds
game: Terraria
game: The Front
game: Unreal Tournament 2004
game: Unreal Tournament 3
game: Unreal Tournament 99
game: Unturned
game: Valheim
game: Wurm Unlimited
game: Zombie Master Reborn
game: label missing
good first issue
help wanted
info: alerts
info: dependency
info: docker
info: docs
info: email
info: query
info: steamcmd
info: systemd
info: tmux
info: website
info: website
needs more info
outcome: duplicate
outcome: issue resolved
outcome: issue resolved
outcome: issue unresolved
outcome: pr accepted
outcome: pr rejected
outcome: unconfirmed
outcome: wontfix
outcome: wrong forum
potential-duplicate
priority
pull-request
type: bug
type: feature
type: feature
type: feature request
type: game server request
type: refactor
waiting response
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/LinuxGSM#3305
No description provided.