| Index: tool/input_sdk/lib/io/platform.dart
|
| diff --git a/tool/input_sdk/lib/io/platform.dart b/tool/input_sdk/lib/io/platform.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..d881ce599f47b73ec89f0243d3c5cd975f10f186
|
| --- /dev/null
|
| +++ b/tool/input_sdk/lib/io/platform.dart
|
| @@ -0,0 +1,210 @@
|
| +// 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.
|
| +
|
| +part of dart.io;
|
| +
|
| +/**
|
| + * Information about the environment in which the current program is running.
|
| + *
|
| + * Platform provides information such as the operating system,
|
| + * the hostname of the computer, the value of environment variables,
|
| + * the path to the running program,
|
| + * and so on.
|
| + *
|
| + * ## Get the URI to the current Dart script
|
| + *
|
| + * Use the [script] getter to get the URI to the currently running
|
| + * Dart script.
|
| + *
|
| + * import 'dart:io' show Platform;
|
| + *
|
| + * void main() {
|
| + * // Get the URI of the script being run.
|
| + * var uri = Platform.script;
|
| + * // Convert the URI to a path.
|
| + * var path = uri.toFilePath();
|
| + * }
|
| + *
|
| + * ## Get the value of an environment variable
|
| + *
|
| + * The [environment] getter returns a the names and values of environment
|
| + * variables in a [Map] that contains key-value pairs of strings. The Map is
|
| + * unmodifiable. This sample shows how to get the value of the `PATH`
|
| + * environment variable.
|
| + *
|
| + * import 'dart:io' show Platform;
|
| + *
|
| + * void main() {
|
| + * Map<String, String> envVars = Platform.environment;
|
| + * print(envVars['PATH']);
|
| + * }
|
| + *
|
| + * ## Determine the OS
|
| + *
|
| + * You can get the name of the operating system as a string with the
|
| + * [operatingSystem] getter. You can also use one of the static boolean
|
| + * getters: [isMacOS], [isLinux], and [isWindows].
|
| + *
|
| + * import 'dart:io' show Platform, stdout;
|
| + *
|
| + * void main() {
|
| + * // Get the operating system as a string.
|
| + * String os = Platform.operatingSystem;
|
| + * // Or, use a predicate getter.
|
| + * if (Platform.isMacOS) {
|
| + * print('is a Mac');
|
| + * } else {
|
| + * print('is not a Mac');
|
| + * }
|
| + * }
|
| + *
|
| + * ## Other resources
|
| + *
|
| + * [Dart by Example](https://www.dartlang.org/dart-by-example/#dart-io-and-command-line-apps)
|
| + * provides additional task-oriented code samples that show how to use
|
| + * various API from the [dart:io] library.
|
| + */
|
| +class Platform {
|
| + static final _numberOfProcessors = _Platform.numberOfProcessors;
|
| + static final _pathSeparator = _Platform.pathSeparator;
|
| + static final _operatingSystem = _Platform.operatingSystem;
|
| + static final _localHostname = _Platform.localHostname;
|
| + static final _version = _Platform.version;
|
| +
|
| + /**
|
| + * Get the number of processors of the machine.
|
| + */
|
| + static int get numberOfProcessors => _numberOfProcessors;
|
| +
|
| + /**
|
| + * Get the path separator used by the operating system to separate
|
| + * components in file paths.
|
| + */
|
| + static String get pathSeparator => _pathSeparator;
|
| +
|
| + /**
|
| + * Get a string (`linux`, `macos`, `windows`, `android`, or `ios`)
|
| + * representing the operating system.
|
| + */
|
| + static String get operatingSystem => _operatingSystem;
|
| +
|
| + /**
|
| + * Get the local hostname for the system.
|
| + */
|
| + static String get localHostname => _localHostname;
|
| +
|
| + /**
|
| + * Returns true if the operating system is Linux.
|
| + */
|
| + static final bool isLinux = (_operatingSystem == "linux");
|
| +
|
| + /**
|
| + * Returns true if the operating system is OS X.
|
| + */
|
| + static final bool isMacOS = (_operatingSystem == "macos");
|
| +
|
| + /**
|
| + * Returns true if the operating system is Windows.
|
| + */
|
| + static final bool isWindows = (_operatingSystem == "windows");
|
| +
|
| + /**
|
| + * Returns true if the operating system is Android.
|
| + */
|
| + static final bool isAndroid = (_operatingSystem == "android");
|
| +
|
| + /**
|
| + * Returns true if the operating system is iOS.
|
| + */
|
| + static final bool isIOS = (_operatingSystem == "ios");
|
| +
|
| + /**
|
| + * Get the environment for this process.
|
| + *
|
| + * The returned environment is an unmodifiable map which content is
|
| + * retrieved from the operating system on its first use.
|
| + *
|
| + * Environment variables on Windows are case-insensitive. The map
|
| + * returned on Windows is therefore case-insensitive and will convert
|
| + * all keys to upper case. On other platforms the returned map is
|
| + * a standard case-sensitive map.
|
| + */
|
| + static Map<String, String> get environment => _Platform.environment;
|
| +
|
| + /**
|
| + * Returns the path of the executable used to run the script in this
|
| + * isolate.
|
| + *
|
| + * The path returned is the literal path used to run the script. This
|
| + * path might be relative or just be a name from which the executable
|
| + * was found by searching the `PATH`.
|
| + *
|
| + * To get the absolute path to the resolved executable use
|
| + * [resolvedExecutable].
|
| + */
|
| + static String get executable => _Platform.executable;
|
| +
|
| + /**
|
| + * Returns the path of the executable used to run the script in this
|
| + * isolate after it has been resolved by the OS.
|
| + *
|
| + * This is the absolute path, with all symlinks resolved, to the
|
| + * executable used to run the script.
|
| + */
|
| + static String get resolvedExecutable => _Platform.resolvedExecutable;
|
| +
|
| + /**
|
| + * Returns the absolute URI of the script being run in this
|
| + * isolate.
|
| + *
|
| + * If the script argument on the command line is relative,
|
| + * it is resolved to an absolute URI before fetching the script, and
|
| + * this absolute URI is returned.
|
| + *
|
| + * URI resolution only does string manipulation on the script path, and this
|
| + * may be different from the file system's path resolution behavior. For
|
| + * example, a symbolic link immediately followed by '..' will not be
|
| + * looked up.
|
| + *
|
| + * If the executable environment does not support [script] an empty
|
| + * [Uri] is returned.
|
| + */
|
| + static Uri get script => _Platform.script;
|
| +
|
| + /**
|
| + * Returns the flags passed to the executable used to run the script in this
|
| + * isolate. These are the command-line flags between the executable name
|
| + * and the script name. Each fetch of executableArguments returns a new
|
| + * List, containing the flags passed to the executable.
|
| + */
|
| + static List<String> get executableArguments => _Platform.executableArguments;
|
| +
|
| + /**
|
| + * Returns the value of the `--package-root` flag passed to the executable
|
| + * used to run the script in this isolate. This is the directory in which
|
| + * Dart packages are looked up.
|
| + *
|
| + * If there is no `--package-root` flag, `null` is returned.
|
| + */
|
| + static String get packageRoot => _Platform.packageRoot;
|
| +
|
| +/**
|
| + * Returns the value of the `--packages` flag passed to the executable
|
| + * used to run the script in this isolate. This is the configuration which
|
| + * specifies how Dart packages are looked up.
|
| + *
|
| + * If there is no `--packages` flag, `null` is returned.
|
| + */
|
| + static String get packageConfig => _Platform.packageConfig;
|
| +
|
| + /**
|
| + * Returns the version of the current Dart runtime.
|
| + *
|
| + * The returned `String` is formatted as the
|
| + * [semver](http://semver.org) version string of the current dart
|
| + * runtime, possibly followed by whitespace and other version and
|
| + * build details.
|
| + */
|
| + static String get version => _version;
|
| +}
|
|
|