From 4833c5ded67027a2a6be229d728fae5269403595 Mon Sep 17 00:00:00 2001 From: Adrian Utrilla Date: Sat, 7 May 2016 13:15:40 -0700 Subject: [PATCH] servo: Merge #11067 - Mach now shows stderr when a virtualenv or pip call fails (fixes #11055) (from autrilla:mach-errors); r=mbrubeck Source-Repo: https://github.com/servo/servo Source-Revision: c226bf85a9476a7a701a69974dfa0893c0e6bcb5 --- servo/python/mach_bootstrap.py | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/servo/python/mach_bootstrap.py b/servo/python/mach_bootstrap.py index 57e6472e5c8f..a22d2aea9afb 100644 --- a/servo/python/mach_bootstrap.py +++ b/servo/python/mach_bootstrap.py @@ -106,10 +106,14 @@ def _activate_virtualenv(topdir): if virtualenv is None: sys.exit("Python virtualenv is not installed. Please install it prior to running mach.") - try: - subprocess.check_call([virtualenv, "-p", python, virtualenv_path]) - except (subprocess.CalledProcessError, OSError): - sys.exit("Python virtualenv failed to execute properly.") + process = subprocess.Popen( + [virtualenv, "-p", python, virtualenv_path], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + process.wait() + if process.returncode: + sys.exit("Python virtualenv failed to execute properly: {}" + .format(process.communicate()[1])) execfile(activate_path, dict(__file__=quote(activate_path))) @@ -138,10 +142,14 @@ def _activate_virtualenv(topdir): if pip is None: sys.exit("Python pip is not installed. Please install it prior to running mach.") - try: - subprocess.check_call([pip, "install", "-q", "-r", req_path]) - except (subprocess.CalledProcessError, OSError): - sys.exit("Pip failed to execute properly.") + process = subprocess.Popen( + [pip, "install", "-q", "-r", req_path], + stdout=subprocess.PIPE, + stderr=subprocess.PIPE) + process.wait() + if process.returncode: + sys.exit("Pip failed to execute properly: {}" + .format(process.communicate()[1])) open(marker_path, 'w').close()