* feat: refactor update comparison output for consistency and clarity
- Replaced direct echo statements with fn_print functions for uniformity in output formatting across multiple update scripts.
- Ensured lockfile creation uses the correct syntax for variable expansion.
- Moved lock file to the same location to ensure monitor doesnt reboot at the wrong time
- Updated remote build information display to enhance readability and maintain consistency in logging.
- Removed unnecessary echo commands to streamline the output process.
* Refactor remote build version handling across multiple modules
- Updated variable names from 'remotebuildversion' to 'remotebuild' for consistency.
- Adjusted logic to check for remote build availability using the new variable name.
- Modified output messages to reflect the change in variable naming.
- Ensured all modules (update_mc.sh, update_mcb.sh, update_mta.sh, update_pmc.sh, update_ts3.sh, update_ut99.sh, update_vints.sh, update_xnt.sh) are aligned with the new naming convention for better readability and maintainability.
* fix(alert): resolve issue with servername not always being listed in title
* Moved `info_distro.sh`, `info_game.sh`, and `info_messages.sh` calls to the top of the `fn_alert_log` function for better clarity.
* Updated `alerticon` assignment to maintain consistency in alert information handling.
* fix(alert_discord): remove "More info" field from Discord alert JSON
* Eliminated the "More info" field to streamline the alert message.
* This change enhances the clarity of the alert by focusing on essential information.
* fix(alert): improve update alert messaging for clarity
* Updated alert messages in `fn_alert_update` and `fn_alert_update_failed` for better readability.
* Changed alert action from `update-request` to `update-restart-request` in `fn_monitor_check_update_source`.
* remove inline
* fix(alert): Correct grammar in update alert message
* Changed "an LinuxGSM update" to "a LinuxGSM update" for grammatical accuracy.
* typo
* fix(alert_discord): Add inline property to "Is my Game Server Online?" field
* Ensures proper formatting of the Discord alert message.
* Improves the display of the server status information.
* fix(pd): increase timeout for termbin.com connection
* fix(alert_discord): reorder fields in Discord alert JSON
* Changed the order of fields in the Discord alert JSON structure.
* Updated the "More info" and "Is my Game Server Online?" fields for better clarity.
* revert back to factorio.com
Co-authored-by: Copilot <[email protected]>
* Standardizes alert messages across platforms
Ensures consistency in alert messages across Discord, NTFY,
Pushover, Rocketchat, Slack, and Telegram.
Updates Discord alerts to include server hostname and time,
removes redundant formatting.
Standardizes plain-text alert formatting for NTFY.
Refactors Pushover messages to use consistent HTML formatting.
Streamlines Rocketchat and Slack messages by removing duplicate
server info and adding optional link support.
* Removes Hostname from alert messages
Removes the Hostname field from various alert messages (Discord, Gotify, IFTTT, ntfy, Pushbullet, Pushover, Rocketchat, Slack, Telegram).
The hostname was deemed redundant or unnecessary in the context of these alerts.
Relates to #4696
* Configures shellcheckrc filename
Configures the Super-Linter action to use `.shellcheckrc` as the
BASH_FILE_NAME. This ensures that shellcheck uses the correct
configuration file for bash script linting.
Fixes#4696
* Disables shellcheck errors and removes variable
Disables specific shellcheck errors to allow certain coding
patterns and removes an unused variable from the super-linter
workflow. This improves the linter's signal-to-noise ratio
and reduces unnecessary checks.
Relates to #4696
* Fixes and improves server list validation scripts
Addresses issues in the server list validation scripts:
- Fixes potential issues with parsing curl custom arguments in telegram alerts.
- Corrects the shortname array generation.
- Implements more robust checks for validating game icons.
- Ensures the consistency of server counts across different CSV files.
* Fixes glibc check and mod selection logic
Corrects glibc version comparison to properly handle version strings.
Improves mod installation and removal by validating user input
against available options, providing a more robust selection process.
This prevents errors caused by invalid mod names and enhances the
user experience.
Updates arithmetic expression syntax for better compatibility.
* Fixes cache control for dev-debug mode
Updates the handling of cache control headers in dev-debug mode.
The `nocache` variable is changed to an array to correctly pass multiple headers to `curl`.
This resolves issues with cached versions of files being used when dev-debug is enabled, ensuring that the latest versions are always fetched.
Fixes#4696
* Allows spaces in steamcmdcommand variable
Parses steamcmdcommand as an array to allow spaces in the
variable.
This prevents issues when the user wants to pass arguments
with spaces to the steamcmd executable.
* Addresses various script improvements
Addresses multiple improvements across various scripts:
- Fixes Valheim unstripped_corlib override by commenting out the lines in the config files.
- Improves process identification for source and goldsrc engines using `pgrep`.
- Enhances backup file identification using `find` with `-maxdepth 1` and `-type f`.
- Fixes glibc version comparison logic in multiple files.
- Improves UT2K4 key installation script by using printf for writing the key to the file.
- Corrects the mod info extraction logic to correctly identify mod entries.
- Improves amxmodx file installation/removal logic to prevent duplicate entries.
- Fixes server info retrieval to handle spaces in the server list.
Relates to #4696
* Fixes mono repo install exit code check
Corrects the mono repo install exit code check to use the dedicated monorepoexitcode variable, ensuring accurate error detection.
Updates the exit trap to preserve the original exit status, preventing potential loss of information when handling script termination.
* Refactors and reorders core modules
Improves module loading by reordering and refactoring the core modules.
This change addresses inconsistencies and improves the overall structure
of how core modules are handled within the system.
Some fix scripts were renamed to match the module name.
* Makes scripts executable
Changes file permissions to make shell scripts executable.
This ensures that the scripts can be run directly.
Addresses a pre-existing issue.
Related to #4696
* Adds explicit permissions to workflows
Specifies explicit permissions for GitHub Actions workflows to enhance security and control access to resources.
This ensures that each workflow only has the necessary permissions, following the principle of least privilege.
* Fixes output redirection and URL parsing
Corrects output redirection in GitHub Actions workflows by enclosing the $GITHUB_OUTPUT variable in quotes, preventing potential issues with variable expansion.
Ensures proper URL parsing in workflows by enclosing the URL within quotes, addressing potential parsing errors.
Fixes#4696
* Applies code formatting for consistency
Applies Prettier formatting to the codebase for improved
readability and consistency.
Addresses minor code style inconsistencies across several files.
* Fixes minor formatting and logic issues
Addresses various minor issues including:
- Standardizes indentation in `.editorconfig` for different file types.
- Simplifies Prettier configuration.
- Updates image links in `README.md`.
- Ensures newline character at end of `.csv` files.
- Corrects a conditional statement in `command_fastdl.sh`.
- Corrects a conditional statement in `info_messages.sh`.
- Updates server query protocols in `query_gsquery.py`.
* Configures and disables linters
Adds YAML linting configuration and disables unnecessary
linters to streamline the CI/CD process and reduce
noise from irrelevant checks.
* Improves documentation and linting
Updates documentation links to be enclosed in angle brackets, preventing markdown rendering issues.
Configures markdownlint to align with repository standards and avoid common false positives.
The updated links in the documentation ensure they are correctly interpreted by markdown parsers, improving user experience.
The markdownlint configuration fine-tunes linting rules to better match the project's existing style and conventions, reducing noise from irrelevant warnings.
* Fixes typos and improves code consistency
Addresses various typos and inconsistencies across multiple files,
enhancing code readability and maintainability.
Adds codespell and flake8 configurations for linting.
Relates to #4696
* Excludes workflow files from Prettier formatting
Prevents Prettier from formatting workflow files due to GitHub token restrictions, as the token used by the Prettier auto-commit action lacks permissions to update files within the `.github/workflows/` directory.
* chore(prettier): format code
* Updates Super-Linter configuration
Improves Super-Linter's reliability by switching to linting the entire codebase instead of relying on git history. This change also addresses potential transient fetch failures from GitHub.
Additionally, this commit expands the ignored paths in codespell and disables some linters to improve performance and reduce false positives.
---------
Co-authored-by: Copilot <[email protected]>
Co-authored-by: dgibbs64 <[email protected]>
* feat: gamedig 5
* install gamedig in lgsm dir if node exists
* and
* use local gamedig version
* local
* palworld
* pw query port
* mbe
* fix ro
system
system
a
* public ip
* jc2m
* fix(ti): update default map
The default map in the tiserver configuration file has been updated from "/Game/TheIsle/Maps/Game/Isla_Spiro/Isla_Spiro" to "/Game/TheIsle/Maps/Game/Gateway/Gateway". This change ensures that the server starts with the correct default map.
* fix: _default.cfg NOT SET
* download package.json and run npm install
* update samp
* disable query for squad
* correct name
* feat: update querymode and querytype in server configs
Changed querymode to 3 and set querytype to "eco" for ecoserver.
Updated querymode to 2 and changed querytype to "protocol-valve" for sdtdserver.
* feat: add new port command for bfv game
Added a new port command for the "bfv" game in the info_messages script.
* queryport eco
* add eco rconport
* adding message
* if node 16 or above
* rename to check_gamedig
* fix: servername variable assignment for sf and unt
The servername variable was incorrectly assigned using the selfname variable instead of the correct servername variable. This has been fixed to ensure accurate information is displayed for each game type.
* add: port & steamport setting for palworld
---------
Co-authored-by: Daniel Gibbs <[email protected]>
The servername variable was incorrectly assigned using the selfname variable instead of the correct servername variable. This has been fixed to ensure accurate information is displayed for each game type.
* feat(ark): move rconport and maxplayers to config
* feat(sbots): removed ? from parameters
* feat(tu): shuffle parameters and use pascal case
* feat(mom): Pascal Case parameters
* add ohd configs
* re order
* sync with configs
* feat(btl): standardise configs and parameters to match other ue4 games
* standardise
* feat(sf): upgrade to ue5
* add ram requirements to satisfactory
* sf fix
* tidy up parameters
* update ark parameters
* minor changes
* updated the isle to UE5
* add game server docs
* move log
* tidy
* cs2
* config
* fix: remove lo code
* config
* params
* source2
* game info
* messages
* config changes
* dirs
* config
* refactor: refactor info message functions in alert.sh, command_details.sh, command_dev_query_raw.sh, and command_postdetails.sh
- Refactored the info message functions in multiple files to have consistent naming conventions.
- Renamed fn_info_message_* functions to fn_info_messages_* for clarity and consistency.
- Updated function calls accordingly.
* refactor: remove unnecessary code duplication in info_game.sh
The commit removes duplicated code for retrieving server information from the game configuration file. Specifically, it removes redundant lines related to rconpassword, rconport, and serverpassword. This improves code readability and maintainability.
* cs2
* cs2
* cs2 icon
* remove lo
* remove file
* remove lo
* update url
* ignore games with no configs
* remove configs from games that have non
* details check fix
* details check
* details check
* ignore systemdir check if running github actions
* fix name
The commit removes the Last Oasis game server configuration file `_default.cfg` and the corresponding module `fix_lo.sh`. These files are no longer needed as Last Oasis is being removed from the supported games list.
* refactor: improve retrieval and handling of public IP address
The code in `info_game.sh` has been refactored to enhance the process of retrieving and handling the public IP address. The changes include:
- Using the API endpoint `http://ip-api.com/json/` instead of `https://api.ipify.org`
- Storing the retrieved data in `publicip.txt`
- Extracting additional information such as country and country code using `jq`
These improvements aim to provide more accurate and detailed information about the public IP address.
* refactor: update API URL and set default values for public IP, country, and country code
The commit refactors the code by updating the API URL to remove a trailing slash. Additionally, it sets default values for the variables `publicip`, `country`, and `countrycode` when the file `${tmpdir}/publicip.txt` is not found.
* feat: cache and retrieve public IP address
This commit adds functionality to cache the public IP address for 24 hours. If the cached IP address is older than 24 hours or doesn't exist, a new request is made to retrieve the public IP address. The retrieved IP address is then stored in a file for future use. Additionally, if there are any errors during the retrieval process, appropriate warning messages are logged and default values are set for the IP address, country, and country code.
Co-authored-by: AI Assistant <[email protected]>
* feat: cache and retrieve public IP address
This commit adds functionality to cache the public IP address for 24 hours. If the cached IP address is older than 24 hours or doesn't exist, a new request is made to retrieve the public IP address. The retrieved IP address is then stored in a file for future use. Additionally, if there are any errors during the retrieval process, appropriate warning messages are logged and default values are set for the IP address, country, and country code.
* refactor: improve caching and logging of public IP address
The code has been refactored to use a JSON file instead of a text file for caching the public IP address. The log messages have also been updated to provide more informative output.
* refactor(info_messages): Remove Mailgun alert
This commit refactors the `info_messages.sh` module by removing the Mailgun (email) alert functionality. The code changes remove the corresponding section that displays the Mailgun alert status in the info message script. This change simplifies and streamlines the code by eliminating unused functionality.
---------
Co-authored-by: AI Assistant <[email protected]>
The sed command in the fn_info_game_valve_keyvalues function has been modified to improve its functionality. The change ensures that only the value between double quotes is captured, even if there are additional spaces before or after the value. This enhances the accuracy of extracting values from server configuration files.
* feat: copy missing directories
Copy the Creative and Adventure directories if they are missing in the server files. This ensures that the necessary directories are present for proper functioning of the server.
* refactor: update default configuration for Wurm server
- Updated the default configuration file for Wurm server.
- Added predefined parameters for game mode, home kingdom, admin password, epic settings, home server, login server, max players, server name, IP address, and ports.
- Modified start parameters to include the new predefined parameters.
- Removed unnecessary lines related to glibc version and sourcing the server config file.
- Updated backup directory path.
* feat: add rmiport and rmiregport to startparameters
This commit adds the `rmiport` and `rmiregport` parameters to the `startparameters` configuration in the Wurm server default config file. These parameters are used for remote method invocation (RMI) port configuration.
* feat: update Wurm server configuration and information
- Updated the default configuration file for the Wurm server.
- Added a new parameter for server-to-server communication.
- Modified the game information script to display the RMI and RMI Registry ports.
This commit improves the configuration and information retrieval for the Wurm server.
* refactor: update startparameters in wurmserver config
The startparameters variable in the wurmserver config file has been updated to remove unnecessary single quotes around the gamemode parameter. This change improves consistency and readability of the code.
* refactor: update startparameters in wurmserver config
The startparameters variable in the wurmserver config file has been updated to include additional parameters for the game server. This change ensures that the server starts with the correct settings and configurations.
* refactor: remove unnecessary start parameter
The commit removes the 'start' parameter from the server's start parameters in the default configuration file. This change simplifies the configuration by removing an unnecessary parameter.
* refactor: update default value for adminpassword in fn_info_game_wurm
The default value for the adminpassword variable in the fn_info_game_wurm function has been updated to "NOT SET" instead of "0". This change ensures that the admin password is properly initialized when not explicitly set.
* feat: add link to Wurm Unlimited server administration documentation
Added a link to the Wurm Unlimited server administration documentation in the default configuration file for LGSM's Wurm server. This will provide users with easy access to information on managing their game servers.
* refactor: remove unnecessary configs in wurmserver config
The commit removes unused lines in the wurmserver configuration file. The removed lines include servercfgdir, servercfg, servercfgdefault, and servercfgfullpath. These lines are no longer needed and have been removed to clean up the code.
* refactor: simplify start parameters in tiserver config
The start parameters in the tiserver config file have been simplified to only include the default map and port. The unnecessary queryport and eaclaunch parameters have been removed.
* refactor: update default configuration and game info handling
- Set `steammaster` to false in the default configuration file.
- Refactor the game info script to handle changes in the game's ini file structure:
- Update the key for `queueenabled` to `bQueueEnabled`.
- Update the key for `rconenabled` to `bRconEnabled`.
- Add support for retrieving `rconpassword`, `serverpassword`, and `serverpasswordenabled`.
- Modify the message formatting in the info messages script to display queue, RCON, and query ports correctly.
* refactor: update default executable name for Rising World server
The default executable name for the Rising World server has been updated from "server.jar" to "RisingWorldServer.x64". This change ensures that the correct executable is used when launching the game server.
* refactor(rw): no longer java
The code in `info_messages.sh` has been refactored to simplify the port command for multiple game servers. This change improves readability and maintainability.
* refactor: simplify info_game_rw function
The info_game_rw function has been refactored to remove redundant code and improve readability. The configuration values are now retrieved using the fn_info_game_keyvalue_pairs function, which reduces duplication and improves maintainability. Additionally, the default values for configip, gamemode, maxplayers, port, queryport, rconport, seed, servername, and worldname have been set to appropriate fallback values if they are not found in the server configuration file.
* refactor: remove unnecessary game ports and query HTTP port
The code changes in this commit refactor the `info_messages.sh` file by removing unnecessary game ports and the query HTTP port. This simplifies the code and improves readability.
* refactor: update queryport calculation in info_game.sh
The code change updates the calculation of the queryport variable in the info_game.sh script. Instead of assigning it the same value as port, it now subtracts 1 from the port value. This ensures that queryport is set correctly for further use in the script.
* feat: add branch configuration option for rwserver
This commit adds a new configuration option `branch` to the `_default.cfg` file in the `rwserver` directory. The default value is set to "unity". This allows users to specify a specific branch for SteamCMD when installing or updating the server.
* refactor: update default game server configuration
The default game server configuration file has been updated to reflect the following changes:
- Removed the predefined parameter `javaram`
- Updated the value of `consoleinteract` to "yes"
- Updated the values of `engine` and `glibc`
These changes ensure that the default configuration is more up-to-date and aligned with the desired behavior for a Rising World game server.
* refactor: remove unnecessary code for game+1, game+2, and game+3
The code changes in this commit involve removing unnecessary code related to the variables port2, port3, and port4. These variables were used to display information about additional games (game+1, game+2, and game+3) in the output. However, since these variables are not being used elsewhere in the script, they have been removed along with the corresponding echo statements. This refactor simplifies the code by eliminating redundant logic.
The `fn_info_game_mta` function in the `info_game.sh` file has been refactored to update the parameters passed to the `fn_info_game_xml` function. The parameter names have been changed from "port" to "serverport", "httpport" to "httpport", "servername" to "servername", "maxplayers" to "maxplayers", and "ase" to "ase". This change improves code readability and consistency.
The log directory configuration has been updated for multiple game servers. The LGSM_LOGDIR environment variable is now checked and used if available, otherwise the default root directory is used. This change ensures that the correct log directories are set for each server.