RaspberryIO_26/Swan.Tiny/SwanRuntime.cs
2019-12-10 20:20:45 +01:00

36 lines
1.0 KiB
C#

using System;
using System.IO;
namespace Swan {
/// <summary>
/// Provides utility methods to retrieve information about the current application.
/// </summary>
public static class SwanRuntime {
// [Obsolete("NEED", false)]
private static OperatingSystem? _oS;
#region Properties
/// <summary>
/// Gets the current Operating System.
/// </summary>
/// <value>
/// The os.
/// </value>
// [Obsolete("NEED", false)]
public static OperatingSystem OS {
get {
if(_oS.HasValue == false) {
String windowsDirectory = Environment.GetEnvironmentVariable("windir");
_oS = String.IsNullOrEmpty(windowsDirectory) == false && windowsDirectory.Contains(@"\") && Directory.Exists(windowsDirectory)
? (OperatingSystem?)OperatingSystem.Windows
: (OperatingSystem?)(File.Exists(@"/proc/sys/kernel/ostype") ? OperatingSystem.Unix : OperatingSystem.Osx);
}
return _oS ?? OperatingSystem.Unknown;
}
}
#endregion
}
}