Backed out changeset: 26ba29eb818f

pull/8/head
psychonic 13 years ago
parent 8a98c812c2
commit 43ca82f869

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

@ -11,6 +11,49 @@ namespace DepotDownloader
{
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()
{
ConsoleKeyInfo keyInfo;

Loading…
Cancel
Save