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

Side by Side Diff: subprocess2.py

Issue 8361006: Fix subprocess2.Popen() logging when given a string (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/depot_tools
Patch Set: Created 9 years, 2 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # coding=utf8 1 # coding=utf8
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 """Collection of subprocess wrapper functions. 5 """Collection of subprocess wrapper functions.
6 6
7 In theory you shouldn't need anything else in subprocess, or this module failed. 7 In theory you shouldn't need anything else in subprocess, or this module failed.
8 """ 8 """
9 9
10 from __future__ import with_statement 10 from __future__ import with_statement
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 151
152 env = get_english_env(kwargs.get('env')) 152 env = get_english_env(kwargs.get('env'))
153 if env: 153 if env:
154 kwargs['env'] = env 154 kwargs['env'] = env
155 if kwargs.get('shell') is None: 155 if kwargs.get('shell') is None:
156 # *Sigh*: Windows needs shell=True, or else it won't search %PATH% for the 156 # *Sigh*: Windows needs shell=True, or else it won't search %PATH% for the
157 # executable, but shell=True makes subprocess on Linux fail when it's called 157 # executable, but shell=True makes subprocess on Linux fail when it's called
158 # with a list because it only tries to execute the first item in the list. 158 # with a list because it only tries to execute the first item in the list.
159 kwargs['shell'] = bool(sys.platform=='win32') 159 kwargs['shell'] = bool(sys.platform=='win32')
160 160
161 tmp_str = ' '.join(args) 161 if isinstance(args, basestring):
162 tmp_str = args
163 elif isinstance(args, (list, tuple)):
164 tmp_str = ' '.join(args)
165 else:
166 raise CalledProcessError(None, args, kwargs.get('cwd'), None, None)
162 if kwargs.get('cwd', None): 167 if kwargs.get('cwd', None):
163 tmp_str += '; cwd=%s' % kwargs['cwd'] 168 tmp_str += '; cwd=%s' % kwargs['cwd']
164 logging.debug(tmp_str) 169 logging.debug(tmp_str)
165 170
166 def fix(stream): 171 def fix(stream):
167 if kwargs.get(stream) in (VOID, os.devnull): 172 if kwargs.get(stream) in (VOID, os.devnull):
168 # Replaces VOID with handle to /dev/null. 173 # Replaces VOID with handle to /dev/null.
169 # Create a temporary file to workaround python's deadlock. 174 # Create a temporary file to workaround python's deadlock.
170 # http://docs.python.org/library/subprocess.html#subprocess.Popen.wait 175 # http://docs.python.org/library/subprocess.html#subprocess.Popen.wait
171 # When the pipe fills up, it will deadlock this process. Using a real file 176 # When the pipe fills up, it will deadlock this process. Using a real file
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
296 301
297 Captures stdout of a process call and returns stdout only. 302 Captures stdout of a process call and returns stdout only.
298 303
299 - Throws if return code is not 0. 304 - Throws if return code is not 0.
300 - Works even prior to python 2.7. 305 - Works even prior to python 2.7.
301 - Blocks stdin by default if not specified since no output will be visible. 306 - Blocks stdin by default if not specified since no output will be visible.
302 - As per doc, "The stdout argument is not allowed as it is used internally." 307 - As per doc, "The stdout argument is not allowed as it is used internally."
303 """ 308 """
304 kwargs.setdefault('stdin', VOID) 309 kwargs.setdefault('stdin', VOID)
305 return check_call_out(args, stdout=PIPE, **kwargs)[0] 310 return check_call_out(args, stdout=PIPE, **kwargs)[0]
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698