Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(299)

Side by Side Diff: sdk/lib/io/process.dart

Issue 17261026: Include parent environment by default, add option to not, for Process. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of dart.io; 5 part of dart.io;
6 6
7 // TODO(ager): The only reason for this class is that we 7 // TODO(ager): The only reason for this class is that we
8 // cannot patch a top-level at this point. 8 // cannot patch a top-level at this point.
9 class _ProcessUtils { 9 class _ProcessUtils {
10 external static void _exit(int status); 10 external static void _exit(int status);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 * that the change of directory occurs before executing the process on some 76 * that the change of directory occurs before executing the process on some
77 * platforms, which may have impact when using relative paths for the 77 * platforms, which may have impact when using relative paths for the
78 * executable and the arguments. 78 * executable and the arguments.
79 * 79 *
80 * Use [environment] to set the environment variables for the process. If not 80 * Use [environment] to set the environment variables for the process. If not
81 * set the environment of the parent process is inherited. Currently, only 81 * set the environment of the parent process is inherited. Currently, only
82 * US-ASCII environment variables are supported and errors are likely to occur 82 * US-ASCII environment variables are supported and errors are likely to occur
83 * if an environment variable with code-points outside the US-ASCII range is 83 * if an environment variable with code-points outside the US-ASCII range is
84 * passed in. 84 * passed in.
85 * 85 *
86 * If [includeParentEnvironment] is `true`, the process's environment will
87 * include the parent process's environment, with [environment] taking
88 * precedence. Default is `true`.
89 *
86 * If [runInShell] is true, the process will be spawned through a system 90 * If [runInShell] is true, the process will be spawned through a system
87 * shell. On Linux and Mac OS, [:/bin/sh:] is used, while 91 * shell. On Linux and Mac OS, [:/bin/sh:] is used, while
88 * [:%WINDIR%\system32\cmd.exe:] is used on Windows. 92 * [:%WINDIR%\system32\cmd.exe:] is used on Windows.
89 * 93 *
90 * Users must read all data coming on the [stdout] and [stderr] 94 * Users must read all data coming on the [stdout] and [stderr]
91 * streams of processes started with [:Process.start:]. If the user 95 * streams of processes started with [:Process.start:]. If the user
92 * does not read all data on the streams the underlying system 96 * does not read all data on the streams the underlying system
93 * resources will not be freed since there is still pending data. 97 * resources will not be freed since there is still pending data.
94 */ 98 */
95 external static Future<Process> start( 99 external static Future<Process> start(
96 String executable, 100 String executable,
97 List<String> arguments, 101 List<String> arguments,
98 {String workingDirectory, 102 {String workingDirectory,
99 Map<String, String> environment, 103 Map<String, String> environment,
104 bool includeParentEnvironment: true,
100 bool runInShell: false}); 105 bool runInShell: false});
101 106
102 /** 107 /**
103 * Starts a process and runs it non-interactively to completion. The 108 * Starts a process and runs it non-interactively to completion. The
104 * process run is [executable] with the specified [arguments]. 109 * process run is [executable] with the specified [arguments].
105 * 110 *
106 * Use [workingDirectory] to set the working directory for the process. Note 111 * Use [workingDirectory] to set the working directory for the process. Note
107 * that the change of directory occurs before executing the process on some 112 * that the change of directory occurs before executing the process on some
108 * platforms, which may have impact when using relative paths for the 113 * platforms, which may have impact when using relative paths for the
109 * executable and the arguments. 114 * executable and the arguments.
110 * 115 *
111 * Use [environment] to set the environment variables for the process. If not 116 * Use [environment] to set the environment variables for the process. If not
112 * set the environment of the parent process is inherited. Currently, only 117 * set the environment of the parent process is inherited. Currently, only
113 * US-ASCII environment variables are supported and errors are likely to occur 118 * US-ASCII environment variables are supported and errors are likely to occur
114 * if an environment variable with code-points outside the US-ASCII range is 119 * if an environment variable with code-points outside the US-ASCII range is
115 * passed in. 120 * passed in.
116 * 121 *
122 * If [includeParentEnvironment] is `true`, the process's environment will
123 * include the parent process's environment, with [environment] taking
124 * precedence. Default is `true`.
125 *
117 * If [runInShell] is true, the process will be spawned through a system 126 * If [runInShell] is true, the process will be spawned through a system
118 * shell. On Linux and Mac OS, `/bin/sh` is used, while 127 * shell. On Linux and Mac OS, `/bin/sh` is used, while
119 * `%WINDIR%\system32\cmd.exe` is used on Windows. 128 * `%WINDIR%\system32\cmd.exe` is used on Windows.
120 * 129 *
121 * The encoding used for decoding `stdout` and `stderr` into text is 130 * The encoding used for decoding `stdout` and `stderr` into text is
122 * controlled through [stdoutEncoding] and [stderrEncoding]. The 131 * controlled through [stdoutEncoding] and [stderrEncoding]. The
123 * default encoding is `Encoding.SYSTEM`. If `null` is used no 132 * default encoding is `Encoding.SYSTEM`. If `null` is used no
124 * decoding will happen and the [ProcessResult] will hold binary 133 * decoding will happen and the [ProcessResult] will hold binary
125 * data. 134 * data.
126 * 135 *
127 * Returns a `Future<ProcessResult>` that completes with the 136 * Returns a `Future<ProcessResult>` that completes with the
128 * result of running the process, i.e., exit code, standard out and 137 * result of running the process, i.e., exit code, standard out and
129 * standard in. 138 * standard in.
130 */ 139 */
131 external static Future<ProcessResult> run( 140 external static Future<ProcessResult> run(
132 String executable, 141 String executable,
133 List<String> arguments, 142 List<String> arguments,
134 {String workingDirectory, 143 {String workingDirectory,
135 Map<String, String> environment, 144 Map<String, String> environment,
145 bool includeParentEnvironment: true,
136 bool runInShell: false, 146 bool runInShell: false,
137 Encoding stdoutEncoding: Encoding.SYSTEM, 147 Encoding stdoutEncoding: Encoding.SYSTEM,
138 Encoding stderrEncoding: Encoding.SYSTEM}); 148 Encoding stderrEncoding: Encoding.SYSTEM});
139 149
140 /** 150 /**
141 * Returns the standard output stream of the process as a [:Stream:]. 151 * Returns the standard output stream of the process as a [:Stream:].
142 * 152 *
143 * Throws an [UnsupportedError] if the process is 153 * Throws an [UnsupportedError] if the process is
144 * non-interactive. 154 * non-interactive.
145 */ 155 */
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
288 /** 298 /**
289 * Contains the system message for the process exception if any. 299 * Contains the system message for the process exception if any.
290 */ 300 */
291 final String message; 301 final String message;
292 302
293 /** 303 /**
294 * Contains the OS error code for the process exception if any. 304 * Contains the OS error code for the process exception if any.
295 */ 305 */
296 final int errorCode; 306 final int errorCode;
297 } 307 }
OLDNEW
« no previous file with comments | « sdk/lib/_internal/pub/test/test_pub.dart ('k') | tests/standalone/io/process_environment_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698