MikuSB.Updater

This commit is contained in:
Kei-Luna
2026-04-27 15:35:05 +09:00
parent 4bf3f0d715
commit 05925dacfb
13 changed files with 517 additions and 2 deletions

View File

@@ -0,0 +1,49 @@
using System.Reflection;
namespace MikuSB.Util;
public static class BuildVersion
{
public static string Current
{
get
{
var assembly = Assembly.GetEntryAssembly() ?? typeof(BuildVersion).Assembly;
var value = assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion;
return string.IsNullOrWhiteSpace(value) ? "0.0.0" : Normalize(value);
}
}
public static string Normalize(string? value)
{
if (string.IsNullOrWhiteSpace(value))
return "0.0.0";
var trimmed = value.Trim();
if (trimmed.StartsWith("v", StringComparison.OrdinalIgnoreCase))
trimmed = trimmed[1..];
var separatorIndex = trimmed.IndexOfAny(['-', '+']);
return separatorIndex >= 0 ? trimmed[..separatorIndex] : trimmed;
}
public static bool IsNewer(string candidate, string current)
{
return ToComparableVersion(candidate) > ToComparableVersion(current);
}
private static Version ToComparableVersion(string? value)
{
var normalized = Normalize(value);
var parts = normalized.Split('.', StringSplitOptions.RemoveEmptyEntries);
var padded = new int[4];
for (var i = 0; i < padded.Length; i++)
{
if (i < parts.Length && int.TryParse(parts[i], out var parsed))
padded[i] = parsed;
}
return new Version(padded[0], padded[1], padded[2], padded[3]);
}
}