Add prop OSTailoredCode.IsWSL

This commit is contained in:
YoshiRulz 2021-01-29 11:20:37 +10:00
parent cb6f435f9a
commit ec80d0fb1d
No known key found for this signature in database
GPG Key ID: C4DE31C245353FB7
2 changed files with 9 additions and 0 deletions

View File

@ -5,6 +5,9 @@ namespace BizHawk.Common.StringExtensions
{
public static class StringExtensions
{
public static bool Contains(this string haystack, string needle, StringComparison comparisonType)
=> haystack.IndexOf(needle, comparisonType) != -1;
/// <returns>
/// <see langword="true"/> if <paramref name="str"/> appears in <paramref name="options"/> (case-insensitive)
/// </returns>

View File

@ -3,6 +3,8 @@ using System.Diagnostics;
using System.Globalization;
using System.Runtime.InteropServices;
using BizHawk.Common.StringExtensions;
#if EXE_PROJECT
namespace EXE_PROJECT // Use a different namespace so the executable can still use this class' members without an implicit dependency on the BizHawk.Common library, and without resorting to code duplication.
#else
@ -44,10 +46,14 @@ namespace BizHawk.Common
return (winVer, null);
});
private static readonly Lazy<bool> _isWSL = new(() => IsUnixHost && SimpleSubshell("uname", "-r", "missing uname?").Contains("microsoft", StringComparison.InvariantCultureIgnoreCase));
public static (WindowsVersion Version, int? Win10Release)? HostWindowsVersion => _HostWindowsVersion.Value;
public static readonly bool IsUnixHost = CurrentOS != DistinctOS.Windows;
public static bool IsWSL => _isWSL.Value;
private static readonly Lazy<ILinkedLibManager> _LinkedLibManager = new Lazy<ILinkedLibManager>(() => CurrentOS switch
{
DistinctOS.Linux => new UnixMonoLLManager(),