485bf8d10b
I have attempted to deal with them correctly instead of ignoring them so that they can be passed on unchanged to subprocesses. R=johnniwinther@google.com BUG= TEST= Review URL: https://chromiumcodereview.appspot.com//10689065 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9284 260f80e4-7a28-3924-810f-c04153c831b5
58 lines
1.9 KiB
Dart
58 lines
1.9 KiB
Dart
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
class _Platform {
|
|
static int _numberOfProcessors() native "Platform_NumberOfProcessors";
|
|
static String _pathSeparator() native "Platform_PathSeparator";
|
|
static String _operatingSystem() native "Platform_OperatingSystem";
|
|
static _localHostname() native "Platform_LocalHostname";
|
|
static _environment() native "Platform_Environment";
|
|
|
|
static int get numberOfProcessors() {
|
|
return _numberOfProcessors();
|
|
}
|
|
|
|
static String get pathSeparator() {
|
|
return _pathSeparator();
|
|
}
|
|
|
|
static String get operatingSystem() {
|
|
return _operatingSystem();
|
|
}
|
|
|
|
static String get localHostname() {
|
|
var result = _localHostname();
|
|
if (result is OSError) {
|
|
throw result;
|
|
} else {
|
|
return result;
|
|
}
|
|
}
|
|
|
|
static Map<String, String> get environment() {
|
|
var env = _environment();
|
|
if (env is OSError) {
|
|
throw env;
|
|
} else {
|
|
var result = new Map();
|
|
for (var str in env) {
|
|
// When running on Windows through cmd.exe there are strange
|
|
// environment variables that are used to record the current
|
|
// working directory for each drive and the exit code for the
|
|
// last command. As an example: '=A:=A:\subdir' records the
|
|
// current working directory on the 'A' drive. In order to
|
|
// handle these correctly we search for a second occurrence of
|
|
// of '=' in the string if the first occurrence is at index 0.
|
|
var equalsIndex = str.indexOf('=');
|
|
if (equalsIndex == 0) {
|
|
equalsIndex = str.indexOf('=', 1);
|
|
}
|
|
assert(equalsIndex != -1);
|
|
result[str.substring(0, equalsIndex)] = str.substring(equalsIndex + 1);
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|