Ditch P/Invoke for detecting OSX as it's a detected platform since .NET 3.5.

pull/8/head
psychonic 14 years ago
parent acdd8bdebc
commit 8a98c812c2

@ -230,7 +230,7 @@ namespace DepotDownloader
if ( platform == PlatformID.Win32NT ) if ( platform == PlatformID.Win32NT )
platformStr = "windows"; platformStr = "windows";
else if ( Util.IsMacOSX() ) else if ( platform == PlatformID.MacOSX )
platformStr = "macos"; platformStr = "macos";
foreach ( var blobField in appInfoBlob.FileSystems ) foreach ( var blobField in appInfoBlob.FileSystems )
@ -266,7 +266,7 @@ namespace DepotDownloader
if (platform == PlatformID.Win32NT) if (platform == PlatformID.Win32NT)
platformSuffix = "-win32"; platformSuffix = "-win32";
else if (platform == PlatformID.Unix && !Util.IsMacOSX()) else if (platform == PlatformID.Unix)
platformSuffix = "-linux"; platformSuffix = "-linux";
foreach (var blobField in serverAppInfoBlob.FileSystems) foreach (var blobField in serverAppInfoBlob.FileSystems)
@ -301,7 +301,7 @@ namespace DepotDownloader
} }
else if ( platform == PlatformID.Win32NT ) else if ( platform == PlatformID.Win32NT )
appIDs.Add( 5 ); appIDs.Add( 5 );
else if ( platform == PlatformID.Unix && !Util.IsMacOSX() ) else if ( platform == PlatformID.Unix)
appIDs.Add( 4 ); appIDs.Add( 4 );
// Half-Life Base Content // Half-Life Base Content

@ -11,49 +11,6 @@ namespace DepotDownloader
{ {
static class Util static class Util
{ {
[DllImport( "libc" )]
static extern int uname( IntPtr buf );
static int _isMacOSX = -1;
// Environment.OSVersion.Platform returns PlatformID.Unix under Mono on OS X
// Code adapted from Mono: mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
public static bool IsMacOSX()
{
if ( _isMacOSX != -1 )
return _isMacOSX == 1;
IntPtr buf = IntPtr.Zero;
try
{
// The size of the utsname struct varies from system to system, but this _seems_ more than enough
buf = Marshal.AllocHGlobal( 4096 );
if ( uname( buf ) == 0 )
{
string sys = Marshal.PtrToStringAnsi( buf );
if ( sys == "Darwin" )
{
_isMacOSX = 1;
return true;
}
}
}
catch
{
// Do nothing?
}
finally
{
if ( buf != IntPtr.Zero )
Marshal.FreeHGlobal( buf );
}
_isMacOSX = 0;
return false;
}
public static string ReadPassword() public static string ReadPassword()
{ {
ConsoleKeyInfo keyInfo; ConsoleKeyInfo keyInfo;

Loading…
Cancel
Save