* refactor: simplify sleep time functions
The `fn_sleep_time` function has been refactored to remove unnecessary conditions and set a default sleep time of 0.5 seconds. Additionally, four new functions (`fn_sleep_time_1`, `fn_sleep_time_5`, `fn_sleep_time_10`) have been added to provide different sleep times of 1, 5, and 10 seconds respectively. This improves code readability and allows for more flexibility in setting sleep times.
* change sleep to fn_sleep_time
* refactor: optimize sleep time functions
- Refactored the code to optimize the sleep time functions.
- Updated the `fn_sleep_time` function calls to `fn_sleep_time_1` in multiple files.
- Removed unnecessary sleep time calls in some files.
* refactor: simplify sleep time function call
The code changes refactor the sleep time function call in the check_deps.sh file. Instead of calling fn_sleep_time_1, it now calls fn_sleep_time. This change simplifies the code and improves readability.
* feat: add sleep time before checking session
Add a sleep time of 1 second before checking the session in the command_monitor.sh file. This allows for better synchronization and improves the accuracy of the session check.
* changes
* refactor: optimize sleep time function
The code changes refactor the sleep time function in multiple files to improve efficiency. The fn_sleep_time function is replaced with fn_sleep_time_1. This change reduces unnecessary delays during execution.
* refactor: update sleep time function names
The sleep time functions in the core_messages.sh file have been updated to use more descriptive names. The fn_sleep_time function has been renamed to fn_sleep_time_1 for clarity and consistency. This change improves code readability and maintainability.
* refactor: optimize sleep time in core_messages.sh
The commit optimizes the sleep time in the core_messages.sh file. The fn_sleep_time and fn_print_dots functions now use a shorter sleep time of 0.5 seconds instead of 1 second, resulting in faster execution.
* refactor: improve readability and consistency in code
- Refactored the log messages to use consistent capitalization and wording.
- Updated log messages in check_glibc.sh, check_permissions.sh, command_backup.sh, command_update_linuxgsm.sh, command_wipe.sh, fix_samp.sh, install_config.sh, and set_dst_config_vars() functions.
feat: add more descriptive log messages
- Added more descriptive log messages to provide clearer information about the actions being performed.
- Updated log messages in check_glibc.sh, check_permissions.sh, command_backup.sh, command_update_linuxgsm.sh, command_wipe.sh, fix_samp.sh, install_config.sh.
fix: correct spelling errors in log messages
- Corrected spelling errors in some of the log messages for better clarity.
- Updated log messages in check_glibc.sh and fix_samp.sh.
* refactor: remove unnecessary print statements
This commit refactors the code by removing unnecessary print statements in multiple files. The removed print statements were used for displaying dots and warnings, but they are not needed anymore. This improves the readability and cleanliness of the code.
* refactor: improve commit messages for code changes
- Refactored check_glibc.sh to improve readability and clarity of error messages.
- Refactored check_permissions.sh to provide more informative error messages when checking /sys permissions.
- Refactored check_system_requirements.sh to provide clearer warning message when checking RAM requirements.
- Refactored command_backup.sh to provide more descriptive messages when starting a backup.
* remove legacy code
* fix: remove \t
* fix: run check_root
check root was never running because of logic in linuxgsm.sh
* fix: update warning message for missing sudo access
The warning message for users without sudo access has been updated to provide clearer instructions. Instead of just suggesting manual installation, it now also suggests running the script as root using `./${selfname} install`. This change improves user experience and helps them resolve dependency installation issues more effectively.
* tidy
- Removed the following files:
- `tests/tests_defaultcfg/defaultcfg_0.txt`
- `tests/tests_defaultcfg/defaultcfg_1.txt`
- `tests/tests_defaultcfg/tests_defaultcfg.sh`
- `tests/tests_fctrserver.sh`
These files were no longer needed and have been deleted.
refactor: remove unused code
- Removed the following files:
- `tests/tests_defaultcfg/defaultcfg_0.txt`
- `tests/tests_defaultcfg/defaultcfg_1.txt`
- `tests/tests_defaultcfg/tests_defaultcfg.sh`
- `tests/tests_fctrserver.sh`
These files were no longer needed and have been deleted.
* 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]>
* refactor: remove unnecessary comments in default server configurations
The commit removes unnecessary comments from the default server configurations. The comments were providing instructions to edit the configuration files with care, but they are not needed and can be safely removed.
* refactor: update server names in default configuration files
- Updated the servername value in multiple default configuration files to "LinuxGSM" for consistency.
- Refactored the code to reflect the changes made.
* refactor: rename fn_script_log_fatal to fn_script_log_faail
to create more consistency with naming
* feat: improve console output formatting
- Added separator function to improve readability of console output.
- Replaced multiple instances of manual separators with the new function.
- Updated commit message to follow conventional commit standard.
* refactor: remove unnecessary fn_sleep_time calls
This commit removes the fn_sleep_time function calls that are no longer needed in multiple modules. The fn_sleep_time function was used to introduce a delay, but it is no longer necessary for the current implementation.
* better standardise random
* removed bold where not required
The code change modifies the tail command in the fn_info_logs function to exclude lines containing "==>". This improves the display of log files by filtering out unnecessary information.
Add a curl command to query the Steam Master Server for server addresses. This allows retrieving server information using the GetServersAtAddress API endpoint provided by Steam.
- Updated the IP and port settings for ckserver, colserver, fctrserver, hwserver, ohdserver, rustserver, and untserver.
- Added a link to the documentation for predefined parameters in ckserver and hwserver.
- Modified the startparameters value in colserver to include additional parameters.
- Changed the branch value in fctrserver to "stable".
- Updated the servername value in hwserver and ohdserver to "LinuxGSM".
- Modified the defaultmap value in hwserver to "nullius".
- Removed optional comments from hwerver regarding defaultmap and creativemode values.
- Updated gamemode values in rusterver and untserer with their respective options.
The code change updates the assignment of the `datadir` variable in the `linuxgsm.sh` script. The new assignment checks if the environment variable `LGSM_DATADIR` is set and uses its value, otherwise it falls back to using `${lgsmdir}/data`.
* refactor: shorten module update function names
The commit renames the update functions for several game modules to shorter names. The new names are more concise and easier to remember, which should improve code readability and maintainability.
* feat: Add Update Check workflow
This commit adds a new GitHub Actions workflow that checks if LinuxGSM is picking up game server config and parameter variables. The workflow runs on push and manual triggers, with concurrency settings to cancel in-progress jobs. It downloads linuxgsm.sh, installs dependencies, grabs the server, enables developer mode, installs the server, and updates it.
* feat: Add concurrency group names to workflows
The `details-check.yml` and `update-check.yml` workflows now have a concurrency group name that includes the branch or tag name. This will allow for better management of concurrent workflow runs.
* refactor: Update script names for Minecraft, Factorio, Jedi Knight 2 and Vintage Story
This commit updates the script names for Minecraft, Factorio, Jedi Knight 2 and Vintage Story. The update includes changes to command_check_update.sh, command_update.sh, core_functions.sh and install_server_files.sh. The new script names are update_mc.sh (formerly update_minecraft.sh), update_fctr.sh (formerly update_factorio.sh), update_jk2.sh (formerly update_jediknight2.sh) and update_vints.sh (formerly update_vintagestory.sh).
* feat: Add support for 32-bit architecture
This commit adds support for 32-bit architecture by running the command "sudo dpkg --add-architecture i386" instead of installing libxml2-utils and jq.
* feat: Add i386 architecture and install libstdc++6
This commit adds the installation of libstdc++6:i386 package to support 32-bit applications. It also includes adding the i386 architecture to dpkg.
* feat: Update dependencies for LinuxGSM
Changed the dependency from libstdc++6:i386 to libgcc-s1:i386 in the update-check.yml file. This change was made to ensure compatibility with newer versions of LinuxGSM.
* feat: Add update and force-update server functionality
This commit adds the ability to check for updates and force updates on a server. The update-check.yml file has been modified to include new jobs that run the LGSM_GITHUBBRANCH command with specific arguments.
* feat: Add dependencies for server installation
This commit adds the necessary dependencies to install a game server. The `update-check.yml` file has been updated to include the installation of `bsdmainutils`, `libsdl2-2.0-0:i386`, `libtinfo5:i386`, and `steamcmd`.
* steamcmd only
* steamcmd
* test
* test
* refactor: improve random password generation in install_config.sh
The code change refactors the random password generation in the `install_config.sh` file. Instead of using `tr -dc A-Za-z0-9_ < /dev/urandom | head -c 8 | xargs`, it now uses `tr -dc 'A-Za-z0-9_' < /dev/urandom 2>/dev/null | head -c 8 | xargs`. This change improves the reliability and security of generating random passwords.
* refactor: remove redundant code and set default branch
The commit refactors the code by removing redundant code that sets the branch to "public" if no custom branch is specified. This change simplifies the logic and improves readability.
* test
* fix: fix steamcmd build version retrieval
The code changes in this commit fix an issue with retrieving the build version from SteamCMD. The previous implementation was not correctly capturing the buildid. This has been resolved by adding additional echo statements for debugging purposes.
* test
fix: remove unnecessary app_info_print command
The commit removes the unnecessary `app_info_print` command from the code. This command was not needed to check the buildid.
* fix: GitHub Actions test failure
The code change fixes a failing GitHub Actions test by running SteamCMD twice. The first run is to update the app info, and the second run retrieves the build ID for the specified branch.
* Add steam user and password secret for jk2
* refactor: update steamuser and steampass paths in jk2server config
The code changes refactor the paths for `steamuser` and `steampass` in the configuration file of the `jk2server`. The previous paths were incorrect, so they have been updated to point to the correct location.
* refactor: update steamuser and steampass insertion in LGSM configuration
The code changes refactor the way steamuser and steampass are inserted into the LGSM configuration file. Instead of hardcoding the values, they are now dynamically inserted using environment variables. This improves flexibility and security when setting up the server.
* refactor: simplify steamuser and steampass insertion in update-check.yml
The code changes remove unnecessary sed commands and replace them with a single echo command to insert the values of STEAMCMD_USER and STEAMCMD_PASS into the common.cfg file. This simplifies the code and improves readability.
* feat: update steamuser and steampass in common.cfg
The commit updates the code to properly insert the `steamuser` and `steampass` values in the `common.cfg` file. The previous code was not correctly formatting the values, which caused issues with server installation. This change ensures that the values are properly formatted using double quotes for `steamuser` and single quotes for `steampass`.
- Refactored the code to use `pgrep -fcx` instead of `pgrep -fc` for checking process counts.
- Updated print statements to provide more informative messages.
- Renamed some variables for clarity.
- Added newlines after printing information.