diff --git a/Dalamud/Plugin/DalamudPluginInterface.cs b/Dalamud/Plugin/DalamudPluginInterface.cs index 90850a08b..e42bbe608 100644 --- a/Dalamud/Plugin/DalamudPluginInterface.cs +++ b/Dalamud/Plugin/DalamudPluginInterface.cs @@ -220,7 +220,7 @@ internal sealed class DalamudPluginInterface : IDalamudPluginInterface, IDisposa /// public IDalamudVersionInfo GetDalamudVersion() { - return new DalamudVersionInfo(Versioning.GetAssemblyVersionParsed(), Versioning.GetActiveTrack()); + return new DalamudVersionInfo(Versioning.GetAssemblyVersionParsed(), Versioning.GetActiveTrack(), Versioning.GetGitHash(), Versioning.GetGitHashClientStructs(), Versioning.GetScmVersion()); } #region IPC diff --git a/Dalamud/Plugin/VersionInfo/DalamudVersionInfo.cs b/Dalamud/Plugin/VersionInfo/DalamudVersionInfo.cs index c87c012af..0a6fad9c2 100644 --- a/Dalamud/Plugin/VersionInfo/DalamudVersionInfo.cs +++ b/Dalamud/Plugin/VersionInfo/DalamudVersionInfo.cs @@ -1,11 +1,20 @@ namespace Dalamud.Plugin.VersionInfo; /// -internal class DalamudVersionInfo(Version version, string? track) : IDalamudVersionInfo +internal class DalamudVersionInfo(Version version, string? track, string? gitHash, string? gitHashClientStructs, string? scmVersion) : IDalamudVersionInfo { /// public Version Version { get; } = version; /// public string? BetaTrack { get; } = track; + + /// + public string? GitHash { get; } = gitHash; + + /// + public string? GitHashClientStructs { get; } = gitHashClientStructs; + + /// + public string? ScmVersion { get; } = scmVersion; } diff --git a/Dalamud/Plugin/VersionInfo/IDalamudVersionInfo.cs b/Dalamud/Plugin/VersionInfo/IDalamudVersionInfo.cs index e6b6a9601..6297ce196 100644 --- a/Dalamud/Plugin/VersionInfo/IDalamudVersionInfo.cs +++ b/Dalamud/Plugin/VersionInfo/IDalamudVersionInfo.cs @@ -16,4 +16,22 @@ public interface IDalamudVersionInfo /// Null if this build wasn't launched from XIVLauncher. /// string? BetaTrack { get; } + + /// + /// Gets the git commit hash value from the assembly or null if it cannot be found. Will be null for Debug builds, + /// and will be suffixed with `-dirty` if in release with pending changes. + /// + string? GitHash { get; } + + /// + /// Gets the git hash value from the assembly or null if it cannot be found. + /// + string? GitHashClientStructs { get; } + + /// + /// Gets the SCM Version from the assembly, or null if it cannot be found. The value returned will generally be + /// the git describe output for this build, which will be a raw version if this is a stable build or an + /// appropriately-annotated version if this is *not* stable. Local builds will return a `Local Build` text string. + /// + string? ScmVersion { get; } }