media/webrtc/trunk/build/android/pylib/cmd_helper.py

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

     1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
     2 # Use of this source code is governed by a BSD-style license that can be
     3 # found in the LICENSE file.
     5 """A wrapper for subprocess to make calling shell commands easier."""
     8 import logging
     9 import subprocess
    12 def RunCmd(args, cwd=None):
    13   """Opens a subprocess to execute a program and returns its return value.
    15   Args:
    16     args: A string or a sequence of program arguments. The program to execute is
    17       the string or the first item in the args sequence.
    18     cwd: If not None, the subprocess's current directory will be changed to
    19       |cwd| before it's executed.
    21   Returns:
    22     Return code from the command execution.
    23   """
    24   logging.info(str(args) + ' ' + (cwd or ''))
    25   p = subprocess.Popen(args=args, cwd=cwd)
    26   return p.wait()
    29 def GetCmdOutput(args, cwd=None, shell=False):
    30   """Open a subprocess to execute a program and returns its output.
    32   Args:
    33     args: A string or a sequence of program arguments. The program to execute is
    34       the string or the first item in the args sequence.
    35     cwd: If not None, the subprocess's current directory will be changed to
    36       |cwd| before it's executed.
    37     shell: Whether to execute args as a shell command.
    39   Returns:
    40     Captures and returns the command's stdout.
    41     Prints the command's stderr to logger (which defaults to stdout).
    42   """
    43   logging.info(str(args) + ' ' + (cwd or ''))
    44   p = subprocess.Popen(args=args, cwd=cwd, stdout=subprocess.PIPE,
    45                        stderr=subprocess.PIPE, shell=shell)
    46   stdout, stderr = p.communicate()
    47   if stderr:
    48     logging.critical(stderr)
    49   logging.info(stdout[:4096])  # Truncate output longer than 4k.
    50   return stdout

mercurial