internal static string GetOsName()

in csharp/NativeUtils/VariablesMapper.cs [196:218]


        internal static string GetOsName()
        {
#if DETECT_OS_AND_ARCH_FROM_RUNTIMEINFO
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
                return OS.windows.ToString();
            if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
                return OS.darwin.ToString();
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
                return OS.linux.ToString();
            throw new Exception("Unknow operation system.");
#else
            // .NET std/core >= 2.0 supports both methods

            int p = (int)Environment.OSVersion.Platform;
            if (p < 4)
                return OS.windows.ToString();
            if (p == 6) /* Old Mac OS value */
                return OS.darwin.ToString();
            if (p == 4 || p == 128) /* Any Unix */
                return ReadProcessOutput("uname").Contains("Darwin") ? OS.darwin.ToString() : OS.linux.ToString();
            throw new Exception("Unknow operation system.");
#endif
        }