Files
Moonlight/Moonlight/App/Helpers/HostSystemHelper.cs

48 lines
1.5 KiB
C#

using System.Runtime.InteropServices;
using Logging.Net;
namespace Moonlight.App.Helpers;
public class HostSystemHelper
{
public string GetOsName()
{
try
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
// Windows platform detected
var osVersion = Environment.OSVersion.Version;
return $"Windows {osVersion.Major}.{osVersion.Minor}.{osVersion.Build}";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
{
// Linux platform detected
var release = System.IO.File.ReadAllText("/etc/os-release");
var version = release.Split('\n')
.FirstOrDefault(x => x.StartsWith("VERSION_ID="))
?.Split('=')[1]
?.Replace("\"", "");
return $"Linux {version ?? release}";
}
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
// macOS platform detected
var osVersion = Environment.OSVersion.Version;
return $"macOS {osVersion.Major}.{osVersion.Minor}.{osVersion.Build}";
}
else
{
// Unknown platform
return "N/A";
}
}
catch (Exception e)
{
Logger.Warn("Error retrieving os information");
Logger.Warn(e);
return "N/A";
}
}
}