using System;
using System.Runtime.InteropServices;
using Microsoft.Extensions.PlatformAbstractions;
namespace Microsoft.DotNet.Cli.Build.Framework
{
public static class CurrentPlatform
public static BuildPlatform Current
get
return DetermineCurrentPlatform();
}
public static bool IsWindows
return RuntimeInformation.IsOSPlatform(OSPlatform.Windows);
public static bool IsOSX
return RuntimeInformation.IsOSPlatform(OSPlatform.OSX);
public static bool IsUbuntu
var osname = PlatformServices.Default.Runtime.OperatingSystem;
return string.Equals(osname, "ubuntu", StringComparison.OrdinalIgnoreCase);
public static bool IsCentOS
return string.Equals(osname, "centos", StringComparison.OrdinalIgnoreCase);
private static BuildPlatform DetermineCurrentPlatform()
if (IsWindows)
return BuildPlatform.Windows;
else if (IsOSX)
return BuildPlatform.OSX;
else if (IsUbuntu)
return BuildPlatform.Ubuntu;
else if (IsCentOS)
return BuildPlatform.CentOS;
else
return default(BuildPlatform);