Remove OS information from System Info (#9175)
Co-authored-by: Bond-009 <bond.009@outlook.com>pull/9181/head
parent
6b006a576d
commit
63b0132562
@ -1,74 +0,0 @@
|
|||||||
#pragma warning disable CS1591
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Runtime.InteropServices;
|
|
||||||
using System.Threading;
|
|
||||||
using MediaBrowser.Model.System;
|
|
||||||
|
|
||||||
namespace MediaBrowser.Common.System
|
|
||||||
{
|
|
||||||
public static class OperatingSystem
|
|
||||||
{
|
|
||||||
// We can't use Interlocked.CompareExchange for enums
|
|
||||||
private static int _id = int.MaxValue;
|
|
||||||
|
|
||||||
public static OperatingSystemId Id
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
if (_id == int.MaxValue)
|
|
||||||
{
|
|
||||||
Interlocked.CompareExchange(ref _id, (int)GetId(), int.MaxValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (OperatingSystemId)_id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static string Name
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
switch (Id)
|
|
||||||
{
|
|
||||||
case OperatingSystemId.BSD: return "BSD";
|
|
||||||
case OperatingSystemId.Linux: return "Linux";
|
|
||||||
case OperatingSystemId.Darwin: return "macOS";
|
|
||||||
case OperatingSystemId.Windows: return "Windows";
|
|
||||||
default: throw new PlatformNotSupportedException($"Unknown OS {Id}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static OperatingSystemId GetId()
|
|
||||||
{
|
|
||||||
switch (Environment.OSVersion.Platform)
|
|
||||||
{
|
|
||||||
// On .NET Core `MacOSX` got replaced by `Unix`, this case should never be hit.
|
|
||||||
case PlatformID.MacOSX:
|
|
||||||
return OperatingSystemId.Darwin;
|
|
||||||
case PlatformID.Win32NT:
|
|
||||||
return OperatingSystemId.Windows;
|
|
||||||
case PlatformID.Unix:
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
string osDescription = RuntimeInformation.OSDescription;
|
|
||||||
if (osDescription.Contains("linux", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
return OperatingSystemId.Linux;
|
|
||||||
}
|
|
||||||
else if (osDescription.Contains("darwin", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
return OperatingSystemId.Darwin;
|
|
||||||
}
|
|
||||||
else if (osDescription.Contains("bsd", StringComparison.OrdinalIgnoreCase))
|
|
||||||
{
|
|
||||||
return OperatingSystemId.BSD;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new PlatformNotSupportedException($"Can't resolve OS with description: '{osDescription}'");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
#pragma warning disable CS1591
|
|
||||||
|
|
||||||
namespace MediaBrowser.Model.System
|
|
||||||
{
|
|
||||||
public enum OperatingSystemId
|
|
||||||
{
|
|
||||||
Windows,
|
|
||||||
Linux,
|
|
||||||
Darwin,
|
|
||||||
BSD
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue