Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(vint): migrate to dotnet from mono #4304

Merged
merged 16 commits into from
Sep 4, 2023
Merged

Conversation

dgibbs64
Copy link
Member

@dgibbs64 dgibbs64 commented Sep 4, 2023

Description

Vintage Story now using .net 7 instead of mono

Fixes #4303

Type of change

  • 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 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.

Thank you for your Pull Request!

dgibbs64 and others added 16 commits September 4, 2023 00:04
- Updated the package dependency for "vints" from "mono-complete" to "aspnetcore-runtime-7.0" in the Ubuntu 16.04, 18.04, and 20.04 CSV files.
- Also updated the package dependency for "vpmc" from "openjdk-8-jre" to "openjdk-11-jre" in the Ubuntu 18.04 and 20.04 CSV files.

This commit ensures that the correct package dependencies are specified for these Ubuntu versions, improving compatibility and functionality of the codebase.
The code has been refactored to update the dependency check for the ASP.NET Core runtime. The condition that checks for the presence of "dotnet-runtime-7.0" has been changed to "aspnetcore-runtime-7.0". This ensures that the correct dependency is being checked and improves accuracy in determining if the required runtime is installed.
The commit fixes a bug in the conditional statement of the check_deps.sh script. Previously, it incorrectly checked if dotnetversion was empty instead of checking if it was not empty. This caused an incorrect value to be assigned to depstatus and dotnetinstalled variables. The bug has been fixed by correcting the conditional statement.
This commit simplifies the `install_config.sh` file by removing unnecessary code for the "vints" configuration. The configuration is now generated on first run, and the list of config locations is still provided.
…all_config.sh

- In core_exit.sh, added a check to set exit code to 4 if it is not already set.
- In install_config.sh, improved the display of missing config file by highlighting the file path.

These changes aim to enhance the error handling and provide clearer information to users.
The commit adds a check for the exitcode variable in command_install.sh. If it is empty, it sets it to 0. This change ensures proper handling of the exitcode in the script.
The code changes in this commit refactor the installation process. The `command_install.sh` file has been modified to remove unnecessary code. Additionally, the `install_complete.sh` file has been updated to provide more informative messages based on the exit code. This improves the overall clarity and user experience during installation.

Co-authored-by: AI Assistant <[email protected]>
The commit removes a redundant function call in the install_config.sh file. The "fn_list_config_locations" function is no longer needed for the "vints" configuration.
- Changed `fn_script_log_error` to `fn_script_log_info` for consistency
- Removed unnecessary empty line
The commit refactors the code in `command_start.sh` and `linuxgsm.sh` to remove redundant code related to generating a unique tmux socket name. The code now creates a uid file if it doesn't exist, stops the running server, generates a uid using the current timestamp, and updates the socketname accordingly. This change improves the efficiency and reliability of socket name generation.
The code change removes the unnecessary call to `command_stop.sh` in the `linuxgsm.sh` file. This improves efficiency and prevents lingering tmux sessions.
The code changes in `command_start.sh` and `linuxgsm.sh` refactor the creation of a unique tmux socket name. The duplicate code in `linuxgsm.sh` has been removed, resulting in cleaner and more efficient code.
The code change refactors the socketname assignment in the linuxgsm.sh script. Instead of directly assigning it to "${sessionname}-$(cat "${datadir}/${selfname}.uid")", it now checks if the file "${datadir}/${selfname}.uid" exists before assigning the value. This improves error handling and prevents potential issues when the file doesn't exist.
@dgibbs64 dgibbs64 linked an issue Sep 4, 2023 that may be closed by this pull request
@dgibbs64 dgibbs64 added this to the v23.5.0 milestone Sep 4, 2023
@dgibbs64 dgibbs64 merged commit 5f0f12a into develop Sep 4, 2023
121 of 137 checks passed
@dgibbs64 dgibbs64 deleted the feature/4303-vint-story-fix branch September 4, 2023 20:24
HotoCocoaco added a commit to HotoCocoaco/LinuxGSM that referenced this pull request Oct 10, 2023
commit 11d8d1c
Merge: 32ecb5c 18facad
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 26 10:36:39 2023 +0100

    Merge branch 'release/v23.5.3'

commit 18facad
Merge: a77cbf7 32ecb5c
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 26 10:35:59 2023 +0100

    Merge branch 'master' into release/v23.5.3

commit a77cbf7
Merge: 79dc5f7 107d48e
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 26 10:35:22 2023 +0100

    Merge pull request GameServerManagers#4319 from GameServerManagers/feature/update-restart-bug

    Release v23.5.3

commit 107d48e
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 26 09:56:01 2023 +0100

    Release v23.5.3

commit 2297d36
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 26 00:35:22 2023 +0100

    feat: moved last-updated.lock file

commit 13c6243
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 26 00:30:54 2023 +0100

    refactor: improve log file display in info_messages.sh

    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.

commit 4a02dfd
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 25 20:30:40 2023 +0100

    fix: set $USER if missing

    $USER is not available in sh which is used by cron.

commit 753eb2a
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 25 19:03:36 2023 +0100

    feat: moved last-updated.lock file

    moved last-updated.lock to ensure it doesn't force a reboot on monitor

commit 79dc5f7
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 19 16:57:39 2023 +0100

    fix(steamcmd): hide steamcmd output

commit 5c33eb3
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 19 16:57:09 2023 +0100

    feat: add curl command to query Steam Master Server

    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.

commit 4f2acdd
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 19 16:55:16 2023 +0100

    refactor: minor _default.cfg changes

    - 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.

commit 32ecb5c
Merge: b59e09c 1728fd9
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 12 21:42:51 2023 +0100

    Merge branch 'hotfix/v23.5.2'

commit a0402ff
Merge: 1892288 1728fd9
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 12 21:42:50 2023 +0100

    Merge branch 'hotfix/v23.5.2' into develop

commit 1728fd9
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 12 21:42:42 2023 +0100

    Release v23.5.2

commit e4e1d72
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 11 22:42:26 2023 +0100

    feat(docker): update datadir variable assignment

    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`.

commit 1892288
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 11 21:42:04 2023 +0100

    feat: add uuid-runtime to Debian and Ubuntu CSV files

    This commit adds the `uuid-runtime` package to the Debian and Ubuntu CSV files. This package is required for stats.

commit b59e09c
Merge: 928de3b db3c384
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 21:59:25 2023 +0100

    Merge branch 'hotfix/v23.5.1'

commit a7330b8
Merge: d9bf89d db3c384
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 21:59:25 2023 +0100

    Merge branch 'hotfix/v23.5.1' into develop

commit db3c384
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 21:59:16 2023 +0100

    Release v23.5.1

commit a05c6a5
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 21:58:02 2023 +0100

    fix(ps): move _default.cfg to new name

commit 622e286
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 21:57:32 2023 +0100

    fix(tw): correct game info

commit 928de3b
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Sep 10 20:17:10 2023 +0100

    build(deps): bump actions/checkout from 3 to 4 (GameServerManagers#4306)

    Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
    - [Release notes](https://github.com/actions/checkout/releases)
    - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
    - [Commits](actions/checkout@v3...v4)

    ---
    updated-dependencies:
    - dependency-name: actions/checkout
      dependency-type: direct:production
      update-type: version-update:semver-major
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d9bf89d
Merge: 272b500 178c216
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 20:12:49 2023 +0100

    Merge branch 'release/v23.5.0' into develop

commit fc36dc9
Merge: c6f752b 178c216
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 20:12:49 2023 +0100

    Merge branch 'release/v23.5.0'

commit 178c216
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 20:11:29 2023 +0100

    Release v23.5.0

commit 2ebcfb9
Merge: a4a85cf b8a275a
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 20:10:38 2023 +0100

    Merge remote-tracking branch 'origin/release/v23.5.0' into release/v23.5.0

commit a4a85cf
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 20:10:30 2023 +0100

    minor rewording

commit b8a275a
Merge: 272b500 c6f752b
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 10 19:49:37 2023 +0100

    Merge branch 'master' into release/v23.5.0

commit 272b500
Author: Daniel Gibbs <[email protected]>
Date:   Fri Sep 8 23:52:03 2023 +0100

    Update README.md

commit 9326d48
Author: Daniel Gibbs <[email protected]>
Date:   Fri Sep 8 23:45:59 2023 +0100

    fix(mta): change updater to use builds (GameServerManagers#4310)

    multitheftauto/mtasa-blue#3176

commit 6921851
Author: Daniel Gibbs <[email protected]>
Date:   Fri Sep 8 08:49:25 2023 +0100

    feat(pvr): add fix_pvr.sh module

commit 08057c8
Merge: 22e812f 8f71482
Author: Daniel Gibbs <[email protected]>
Date:   Thu Sep 7 23:39:49 2023 +0100

    Merge remote-tracking branch 'origin/develop' into develop

commit 22e812f
Author: Daniel Gibbs <[email protected]>
Date:   Thu Sep 7 23:39:43 2023 +0100

    fix(ts3): update now works in docker

commit 8f71482
Author: Daniel Gibbs <[email protected]>
Date:   Thu Sep 7 23:12:53 2023 +0100

    feat(ci): game server update checker (GameServerManagers#4298)

    * 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`.

commit 16c4493
Author: Daniel Gibbs <[email protected]>
Date:   Thu Sep 7 22:43:59 2023 +0100

    fix(monitor): migration code

commit fe610f3
Author: Daniel Gibbs <[email protected]>
Date:   Thu Sep 7 21:25:20 2023 +0100

    feat(inss): enable master server checking

commit ca184e3
Author: Daniel Gibbs <[email protected]>
Date:   Thu Sep 7 21:23:31 2023 +0100

    fix(monitor): migration code

commit 8cd16ac
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 22:01:09 2023 +0100

    fix: make pgrep unique

    - 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.

commit 20f5e8d
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 19:27:05 2023 +0100

    feat(ps): Renamed pstbs to ps

    Post Scriptum changed is name removing "The Bloody Seventh" part. I have updated the naming of this game server.

commit 3959fa4
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 19:22:23 2023 +0100

    fix(pstbs): correct gamename

commit 89ec08c
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 16:40:34 2023 +0100

    fix(pvr): add fix for libc

commit 5593658
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 15:41:39 2023 +0100

    fix(pvr): update executable details

    PVR server has changed the name if its executable

commit a3c5a84
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 15:20:07 2023 +0100

    fix(start): lock file created before check

    Even if check fails a lock file will be generated to allow monitor to run

commit 82e5da4
Author: Daniel Gibbs <[email protected]>
Date:   Wed Sep 6 14:27:10 2023 +0100

    fix(info_game): refactor key value pairs parsing

    split out space and equals delimited

commit 65e3a93
Author: Daniel Gibbs <[email protected]>
Date:   Tue Sep 5 00:01:07 2023 +0100

    fix(unt): config is auto generated

commit 8a9f343
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 4 23:11:56 2023 +0100

    feat(inss): add optional gslt to start parameters

commit ac78fc1
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 4 22:10:41 2023 +0100

    fix(pz): correct start parameters (GameServerManagers#4305)

    * refactor: remove unnecessary memory allocation in pzserver config

    The startparameters variable in the pzserver configuration file was modified to remove the unnecessary memory allocation parameter. This change simplifies the configuration and improves efficiency.

    * refactor: simplify startparameters in pzserver config

    The startparameters in the pzserver config file have been simplified to only include the server name. This change removes unnecessary parameters and improves readability.

commit 5f0f12a
Author: Daniel Gibbs <[email protected]>
Date:   Mon Sep 4 21:24:27 2023 +0100

    feat(vint): migrate to dotnet from mono (GameServerManagers#4304)

    * adde dotnet repo

    * feat: update package dependencies for Ubuntu 16.04, 18.04, and 20.04

    - Updated the package dependency for "vints" from "mono-complete" to "aspnetcore-runtime-7.0" in the Ubuntu 16.04, 18.04, and 20.04 CSV files.
    - Also updated the package dependency for "vpmc" from "openjdk-8-jre" to "openjdk-11-jre" in the Ubuntu 18.04 and 20.04 CSV files.

    This commit ensures that the correct package dependencies are specified for these Ubuntu versions, improving compatibility and functionality of the codebase.

    * refactor: update dependency check for ASP.NET Core runtime

    The code has been refactored to update the dependency check for the ASP.NET Core runtime. The condition that checks for the presence of "dotnet-runtime-7.0" has been changed to "aspnetcore-runtime-7.0". This ensures that the correct dependency is being checked and improves accuracy in determining if the required runtime is installed.

    * fix: fix conditional statement in check_deps.sh

    The commit fixes a bug in the conditional statement of the check_deps.sh script. Previously, it incorrectly checked if dotnetversion was empty instead of checking if it was not empty. This caused an incorrect value to be assigned to depstatus and dotnetinstalled variables. The bug has been fixed by correcting the conditional statement.

    * refactor: simplify install_config.sh

    This commit simplifies the `install_config.sh` file by removing unnecessary code for the "vints" configuration. The configuration is now generated on first run, and the list of config locations is still provided.

    * refactor: improve error handling and display in core_exit.sh and install_config.sh

    - In core_exit.sh, added a check to set exit code to 4 if it is not already set.
    - In install_config.sh, improved the display of missing config file by highlighting the file path.

    These changes aim to enhance the error handling and provide clearer information to users.

    * feat: add exitcode handling to command_install.sh

    The commit adds a check for the exitcode variable in command_install.sh. If it is empty, it sets it to 0. This change ensures proper handling of the exitcode in the script.

    * refactor: improve installation process

    The code changes in this commit refactor the installation process. The `command_install.sh` file has been modified to remove unnecessary code. Additionally, the `install_complete.sh` file has been updated to provide more informative messages based on the exit code. This improves the overall clarity and user experience during installation.

    Co-authored-by: AI Assistant <[email protected]>

    * refactor: remove redundant code in install_config.sh

    The commit removes a redundant function call in the install_config.sh file. The "fn_list_config_locations" function is no longer needed for the "vints" configuration.

    * a

    * refactor: improve logging in command_stop.sh

    - Changed `fn_script_log_error` to `fn_script_log_info` for consistency
    - Removed unnecessary empty line

    * refactor: dont try to stop a server that is already stopped

    * refactor: remove redundant code and improve socket name generation

    The commit refactors the code in `command_start.sh` and `linuxgsm.sh` to remove redundant code related to generating a unique tmux socket name. The code now creates a uid file if it doesn't exist, stops the running server, generates a uid using the current timestamp, and updates the socketname accordingly. This change improves the efficiency and reliability of socket name generation.

    * refactor: remove unnecessary command_stop.sh call

    The code change removes the unnecessary call to `command_stop.sh` in the `linuxgsm.sh` file. This improves efficiency and prevents lingering tmux sessions.

    * refactor: remove duplicate code for creating unique tmux socket name

    The code changes in `command_start.sh` and `linuxgsm.sh` refactor the creation of a unique tmux socket name. The duplicate code in `linuxgsm.sh` has been removed, resulting in cleaner and more efficient code.

    * refactor: improve socketname assignment

    The code change refactors the socketname assignment in the linuxgsm.sh script. Instead of directly assigning it to "${sessionname}-$(cat "${datadir}/${selfname}.uid")", it now checks if the file "${datadir}/${selfname}.uid" exists before assigning the value. This improves error handling and prevents potential issues when the file doesn't exist.

commit 49be44d
Author: Daniel Gibbs <[email protected]>
Date:   Sun Sep 3 21:13:21 2023 +0100

    feat: add mono support for Ubuntu 22.04 and Debian 12

    This commit adds support for Ubuntu 22.04 and Debian 12 in the check_deps.sh script. It includes the necessary commands to install dependencies for Mono repository on these versions of the operating systems.

commit aaff7c9
Author: Daniel Gibbs <[email protected]>
Date:   Sat Sep 2 01:05:06 2023 +0100

    fix: Steam log symlink points to correct location

    This commit adds the functionality to create a symbolic link for Steam logs if it is missing. The symlink is created in the specified log directory.

commit a5dbb4a
Author: Daniel Gibbs <[email protected]>
Date:   Fri Sep 1 23:38:51 2023 +0100

    fix: add socketname to core_legacy.sh

commit b481ff1
Author: Daniel Gibbs <[email protected]>
Date:   Fri Sep 1 23:12:35 2023 +0100

    fix: resolve edge case where RHEL servers might have dpkg installed (GameServerManagers#4302)

    For reasons unknown you can install dpkg in RHEL so instead this now looks for apt, yum or dnf

commit 7b37424
Author: Daniel Gibbs <[email protected]>
Date:   Fri Sep 1 22:08:26 2023 +0100

    feat: change extip to public ip (GameServerManagers#4301)

    also change ark parms for epic to use publicip

commit 6b9393f
Author: Daniel Gibbs <[email protected]>
Date:   Wed Aug 30 22:58:02 2023 +0100

    fix: improve sed command in fn_info_game_valve_keyvalues (GameServerManagers#4300)

    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.

commit 2d60921
Author: Daniel Gibbs <[email protected]>
Date:   Mon Aug 28 22:21:18 2023 +0100

    fix(steamcmd): resolve steamcmd goldsource download issues (GameServerManagers#4297)

    * add appmanifest files to data

    * refactor: improve appmanifest check and force update logic

    The code changes refactor the `fn_appmanifest_check` function in the `core_steamcmd.sh` file. The improvements include:
    - Checking if `BytesDownloaded` and `BytesToDownload` match, and forcing an update if they don't.
    - Checking if `BytesStaged` and `BytesToStage` match, and forcing an update if they don't.
    - For GoldSrc engine, checking if `SharedDepots` exists in the appmanifest file, and forcing an update if it doesn't.
    - Fetching missing appmanifest files from GitHub for specific game shortnames.

    These changes enhance the reliability of the appmanifest check process and ensure that updates are forced when necessary.

    * refactor: improve removal of appinfo.vdf file

    The code has been refactored to improve the removal of the appinfo.vdf file. The find command now redirects error output to /dev/null for a cleaner execution.

    * fn_check_steamcmd_appmanifest is now a full check

    * feat: add support for fetching appmanifest files

    This commit adds support for fetching appmanifest files from the GitHub repository. The code now fetches the appropriate appmanifest files based on the game's shortname and updates them in the serverfiles/steamapps directory. This change ensures that the correct appmanifest files are used, fixing an issue related to updating certain games.

    * more appmanifest files

    * feat: add appmanifest_10.acf for Counter-Strike

    Added the appmanifest_10.acf file for Counter-Strike to resolve an issue with missing SharedDepots. This commit fetches the necessary files from GitHub and forces an update to correct the issue.

    * fix: fix missing SharedDepots in appmanifest_90.acf

    The code changes fix a bug where the SharedDepots entry was missing from the appmanifest_90.acf file. The commit updates the error messages and logs to reflect the correct filename. Additionally, it forces an update to resolve the issue.

commit 4ddd8ee
Author: Daniel Gibbs <[email protected]>
Date:   Mon Aug 28 01:49:47 2023 +0100

    feat: tmux uniqueness (GameServerManagers#4296)

    * refactor: refactor tmux session handling

    - Updated the code to use the variable `socketname` instead of `sessionname` when interacting with tmux sessions.
    - Added logic to create a unique socket name using a UID if it doesn't already exist.
    - Refactored multiple functions (`fn_start_jk2`, `fn_start_tmux`, `fn_stop_graceful_ctrlc`, `fn_stop_graceful_cmd`, `fn_stop_graceful_goldsrc`, `fn_stop_graceful_avorion`, and `fn_stop_tmux`) to use the new socket name for tmux commands.

    This commit improves the readability and maintainability of the code by separating the concept of session names from socket names, allowing for more flexibility in managing tmux sessions.

    * feat: stop server when generating uid

    this should prevent issues when migrating to using uid

    * refactor: lockfile handling

    - Removed unnecessary function fn_start_jk2()
    - Removed unused variable startparameters in fn_start_tmux()
    - Added comments to clarify code functionality
    - Renamed lockfile from "${lockdir}/${selfname}.lock" to "${lockdir}/${selfname}-start.lock"
    - Updated log messages and log file names to include timestamp

    * refactor: improve backup and update monitoring

    The code in `command_monitor.sh` has been refactored to enhance the monitoring of backups and updates. The conditions for checking if a backup or update is running have been modified to include additional checks using `pgrep`. This change improves the accuracy of the monitoring process.

    * refactor: improve logging in core_exit.sh

    - Changed the grep command to include the -a flag to handle non-text files
    - Updated sed command to remove "modulefile=" from the output and redirect it to dev-debug-module-order.log

    * refactor: improve code readability and remove redundant code

    - Refactored the `fn_monitor_check_starting` function to check for stale lockfiles and print appropriate messages.
    - Refactored the `fn_monitor_check_stopping` function to check for stale lockfiles and print appropriate messages.
    - Removed redundant code that deletes the update lockfile in `command_update.sh` and `command_validate.sh`.
    - Improved code readability by removing unnecessary comments.

    * feat: add exitbypass flag to prevent lingering tmux sessions

    The code changes in `command_start.sh` include adding an `exitbypass` flag to prevent lingering tmux sessions. This flag is used to stop the running server before creating a unique uid for the tmux socket name.

    * refactor: Refactor lockfile names for consistency and clarity

    - Renamed "${lockdir}/${selfname}-laststart.lock" to "${lockdir}/${selfname}-last-started.lock"
    - Renamed "${lockdir}/backup.lock" to "${lockdir}/stopping.lock"
    - Renamed "${lockdir}/${selfname}-start.lock" to "${lockdir}/${selfname}-started.lock"
    - Renamed "${lockdir}/${selfname}-starting.lock" to "${lockdir}/${selfname}-stopping.lock"

    This commit refactors the lockfile names in the codebase for better consistency and clarity. The changes make it easier to understand the purpose of each lockfile and improve readability.

    * refactor: refactor check_last_update.sh, command_backup.sh, command_debug.sh, command_mods_remove.sh, command_monitor.sh, command_start.sh, command_stop.sh, command_ts3_server_pass.sh and core_steamcmd.sh

    - Refactored code to improve readability and maintainability.
    - Renamed variables for clarity.
    - Removed unnecessary comments and unused code.
    - Fixed typos and formatting issues.

    * refactor: update lock file path in core_steamcmd.sh

    The lock file path in the core_steamcmd.sh script has been updated to use the correct variable. This change ensures that the lock file is created in the correct directory.

    * refactor: improve file deletion in command_stop.sh

    The code change refactors the file deletion process in the command_stop.sh script. Instead of using an empty redirect, it now directly removes the specified lock file. This improves clarity and ensures proper cleanup when stopping a command.

    * refactor: update lockfile name in command_monitor.sh

    The lockfile name has been changed from "${selfname}-started.lock" to "${selfname}-monitoring.lock" in the fn_monitor_check_lockfile function. The code has also been refactored to remove unnecessary checks and fixes for the lockfile.

    * refactor: simplify start and stop command checks

    The code in `command_start.sh` and `command_stop.sh` has been refactored to simplify the checks for the start and stop commands. Instead of checking if `exitbypass` is empty, it now directly checks if `firstcommandname` matches specific values ("START", "RESTART" for start command, and "STOP" for stop command). This change improves readability and reduces unnecessary conditions.

    * refactor: simplify lockfile names and remove duplicate code

    - Renamed lockfiles from "${selfname}-started.lock" to "started.lock", "${selfname}-starting.lock" to "starting.lock", "${selfname}-stopping.lock" to "stopping.lock", and "${selfname}-update.lock" to "update.lock".
    - Removed duplicate code for removing stale lockfiles in fn_monitor_check_starting(), fn_monitor_check_stopping(), fn_monitor_check_backup(), fn_monitor_check_update(), update_factorio.sh, update_jediknight2.sh, update_minecraft.sh, update_minecraft_bedrock.sh, update_mta.sh, update_papermc.sh, update_ts3.sh, update_ut99.sh, and update_vintagestory.sh.
    - Updated references to the renamed lockfiles in the respective functions.

    * fix: corrected commandname

    * fix: commandname skeleton

    * refactor: improve file path handling in check_last_update.sh

    The code changes refactor the file path handling in check_last_update.sh to use the correct lock directory. This ensures that the last update time is correctly retrieved and compared with the last start time.

    * feat: add update lock file

    Add functionality to create an update lock file when validating and updating SteamCMD. This prevents potential conflicts with customised files.

    - Create a lock file with the current timestamp in the "command_validate.sh" script
    - Create a lock file with the current timestamp in the "update_steamcmd.sh" script

    * refactor: rename libgcc_s.so.1 backup file

    The code has been refactored to improve clarity and readability. The variable `libgccc_so` has been renamed to `libgccc_so.bak` for better understanding of its purpose. This change ensures that the backup file for libgcc_s.so.1 is correctly named and easily identifiable.

    * refactor: improve logging and error handling in command_monitor.sh

    - Added error handling for PIDs with identical tmux sessions running, killing them and restarting the server.
    - Added error handling for PIDs with the same tmux session and socket names running, killing them and restarting the server.

commit 290eb6b
Author: maximalmax90 <[email protected]>
Date:   Mon Aug 28 05:03:44 2023 +0800

    Update update_vintagestory.sh (GameServerManagers#4286)

    * build(deps): bump github/issue-labeler from 3.1 to 3.2 (GameServerManagers#4258)

    Bumps [github/issue-labeler](https://github.com/github/issue-labeler) from 3.1 to 3.2.
    - [Release notes](https://github.com/github/issue-labeler/releases)
    - [Commits](github/issue-labeler@v3.1...v3.2)

    ---
    updated-dependencies:
    - dependency-name: github/issue-labeler
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

    * Update update_vintagestory.sh

    * Update _default.cfg

    ---------

    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: Daniel Gibbs <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

commit d83e9d9
Author: Daniel Gibbs <[email protected]>
Date:   Sun Aug 27 21:50:10 2023 +0100

    feat: Migrate stats to Google GA-4 (GameServerManagers#4295)

    * refactor: simplify Google Analytics event tracking

    This commit simplifies the code for sending Google Analytics events by using a single POST request instead of multiple cURL commands. The new approach sends all necessary parameters in a JSON payload, reducing redundancy and improving efficiency. Additionally, unnecessary event tracking for summary statistics has been removed.

    Co-authored-by: AI Assistant <[email protected]>

    * add plausable event api

    * refactor: remove unnecessary header in info_stats.sh

    The commit removes an unnecessary header in the info_stats.sh file. This change simplifies the code and improves readability.

    * feat: add country code of external IP address

    This commit adds functionality to retrieve the country code of the external IP address. If the country code is not already stored in a file, it uses curl to fetch it from https://ipapi.co/country and saves it in "${tmpdir}/countrycode.txt". If curl fails, an error message is displayed.

    * feat: add country code to Google Analytics tracking

    This commit adds the country code parameter to the Google Analytics tracking request in the `info_stats.sh` file. It also includes various server statistics such as CPU usage, memory usage, disk usage, distro name, game name, RAM usage, server CPU details, server disk details, server RAM details, and version information.

    * refactor: update country code parameter in info_stats.sh

    The commit updates the country code parameter in the info_stats.sh file. The previous parameter "country" has been changed to "countryId" for better clarity and consistency.

    * feat: add countryId and version to Google Analytics tracking

    This commit adds the "countryId" and "version" parameters to the Google Analytics tracking in the info_stats.sh script. Now, when the script sends data to Google Analytics, it includes information about the country and version of LinuxGSM being used.

    * refactor: remove unused countryId parameter in info_stats.sh

    The commit removes the unused "countryId" parameter from the info_stats.sh file in the lgsm/modules directory. This change improves code cleanliness and eliminates unnecessary code.

    * feat: add LinuxGSM stats tracking

    This commit adds functionality to track LinuxGSM server statistics using Google Analytics and a custom API. The code now sends POST requests to both services, providing information such as CPU usage, memory usage, disk space, server hardware details, and game-specific data. Additionally, the commit includes an alert feature that sends event data to Discord if enabled.

    Co-authored-by: [Author Name]

    * refactor: update event name in info_stats.sh

    The commit updates the event name in the info_stats.sh file from "linuxgsm" to "pageview". This change ensures that the correct event is being tracked when sending data to the stats.linuxgsm.com API.

    * feat: add virtual environment to info_distro, info_game, and info_stats modules

    - Added code to retrieve the virtual environment using systemd-detect-virt command.
    - Updated the condition for RHEL based distros in info_distro module.
    - Removed code related to country code retrieval from external IP address in info_game module.
    - Added virtual environment field to the payload sent to Google Analytics and LinuxGSM API in info_stats module.

    * feat: remove unnecessary header in info_stats.sh

    The commit removes an unnecessary header in the info_stats.sh file. The header was causing an issue with the API request.

    * feat: update server stats and enabled alerts

    - Updated the server stats to include virtual environment, LinuxGSM version, and enabled alerts.
    - Removed unnecessary code for sending alert statistics.

    * feat: add alert options to info_stats module

    This commit adds new alert options to the info_stats module. The added options include discordalert, emailalert, gotifyalert, iftttalert, mailgunalert, pushbulletalert, pushoveralert, rocketchatalert, slackalert, and telegramalert. These options allow users to configure different types of alerts for their game server statistics.

    * feat: add virtual environment tracking to info_stats module

    This commit adds the ability to track the virtual environment in the info_stats module. The "virtualenvironment" field is now included in the data sent to Google Analytics.

    * feat: add dynamic payload generation for Google Analytics

    This commit adds the ability to dynamically generate the payload for sending events to Google Analytics. The payload now includes properties such as `discordalert`, `emailalert`, `gotifyalert`, and more, based on their respective values. This allows for more flexibility in customizing the payload sent to Google Analytics.

    The code changes can be found in `info_stats.sh`.

    * refactor: simplify payload construction

    The code changes in this commit refactor the payload construction in the `info_stats.sh` file. The changes simplify the process by removing repetitive if statements and consolidating the payload parameters. This improves readability and maintainability of the code.

    * refactor: refactor alert options in info_stats.sh

    Refactored the code in info_stats.sh to improve readability and maintainability. Replaced individual alert options with a unified "alert" option, which now accepts values like "discord", "email", "gotify", etc. This change simplifies the code and makes it easier to add or modify alert options in the future.

    * feat: Send stats to Google Analytics GA4

    This commit adds the functionality to send server statistics to Google Analytics GA4. The payload includes metrics such as CPU usage, disk usage, memory usage, and server information. The data is sent using a POST request to the Google Analytics API.

    The previous code that sent stats to the LinuxGSM stats endpoint has been removed.

    Note: This commit does not include any specific file changes.

    * refactor: simplify sending stats to Google Analytics

    The code changes refactor the logic for sending stats to Google Analytics. The previous implementation had multiple if statements for different alert types, resulting in repetitive code. The refactored code now uses a function to generate the alert payload and reduces duplication. This improves readability and maintainability of the code.

    Co-authored-by: John Doe <[email protected]>

    ---------

    Co-authored-by: AI Assistant <[email protected]>
    Co-authored-by: John Doe <[email protected]>

commit f68818d
Author: Daniel Gibbs <[email protected]>
Date:   Wed Jul 26 22:12:20 2023 +0100

    refactor: rename clear-modules command to cm;clear-modules

    The commit renames the clear-modules command to cm;clear-modules in the core_getopt.sh file. This change improves clarity and consistency in the codebase.

commit 6dd9709
Author: Daniel Gibbs <[email protected]>
Date:   Wed Jul 26 21:21:35 2023 +0100

    fix: add new info about steamcmd failures

    This commit fixes an issue in the core_dl.sh script where disk write failures and missing update files were not being handled correctly. Now, when a disk write failure or missing update files occur during the download process, appropriate error messages are displayed and logged.

commit 7d50e3a
Merge: 1ea6ebb edcd2b7
Author: Daniel Gibbs <[email protected]>
Date:   Fri Jul 21 21:23:25 2023 +0100

    Merge branch 'release/v23.4.0' into develop
Copy link
Contributor

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.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Vintage Story should user .net rather than mono
1 participant