Files
Libation/Source/LibationFileManager/Configuration.Environment.cs
Michael Bucari-Tovo d67692355f Enable project-wide nullable reference types
Added DB migration for nullable types.
2026-02-05 12:43:05 -07:00

36 lines
861 B
C#

using System;
namespace LibationFileManager;
[Flags]
public enum OS
{
Unknown,
Windows = 0x100000,
Linux = 0x200000,
MacOS = 0x400000,
}
public static class Extensions
{
public static string ToVersionString(this Version? version)
=> version is null ? "[unknown]"
: version.Revision > 1 ? version.ToString(4)
: version.ToString(3);
}
public partial class Configuration
{
public static bool IsWindows { get; } = OperatingSystem.IsWindows();
public static bool IsLinux { get; } = OperatingSystem.IsLinux();
public static bool IsMacOs { get; } = OperatingSystem.IsMacOS();
public static Version? LibationVersion { get; private set; }
public static void SetLibationVersion(Version? version) => LibationVersion = version;
public static OS OS { get; }
= IsLinux ? OS.Linux
: IsMacOs ? OS.MacOS
: IsWindows ? OS.Windows
: OS.Unknown;
}