mirror of
https://github.com/servo/servo.git
synced 2025-08-04 13:10:20 +01:00
Auto merge of #7678 - AnthonyBroadCrawford:improved-error-messaging-mach-bootstrap, r=frewsxcv
#7630 Adding better error messaging in mach bootstrap for missing virtualenv/pip dependencies This PR is in reference to #7630 I've added a simple try catch around our use of subprocess.check_all when trying to invoke and use python's - virtualenv - pip Upon failure, I use sys.exit with an error message for the user. Exit seemed appropriate as anything beneath those dependencies will fail to execute and result in a non friendly error message <!-- Reviewable:start --> [<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/7678) <!-- Reviewable:end -->
This commit is contained in:
commit
44de9173cc
1 changed files with 17 additions and 2 deletions
|
@ -84,7 +84,14 @@ def _activate_virtualenv(topdir):
|
||||||
|
|
||||||
if not os.path.exists(virtualenv_path):
|
if not os.path.exists(virtualenv_path):
|
||||||
virtualenv = _get_exec("virtualenv2", "virtualenv")
|
virtualenv = _get_exec("virtualenv2", "virtualenv")
|
||||||
|
|
||||||
|
try:
|
||||||
subprocess.check_call([virtualenv, "-p", python, virtualenv_path])
|
subprocess.check_call([virtualenv, "-p", python, virtualenv_path])
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
sys.exit("Python virtualenv failed to execute properly.")
|
||||||
|
except OSError:
|
||||||
|
sys.exit("Please install virtualenv "
|
||||||
|
"and ensure permissions prior to running mach.")
|
||||||
|
|
||||||
activate_path = os.path.join(virtualenv_path, "bin", "activate_this.py")
|
activate_path = os.path.join(virtualenv_path, "bin", "activate_this.py")
|
||||||
execfile(activate_path, dict(__file__=activate_path))
|
execfile(activate_path, dict(__file__=activate_path))
|
||||||
|
@ -109,7 +116,15 @@ def _activate_virtualenv(topdir):
|
||||||
continue
|
continue
|
||||||
except OSError:
|
except OSError:
|
||||||
open(marker_path, 'w').close()
|
open(marker_path, 'w').close()
|
||||||
|
|
||||||
|
try:
|
||||||
subprocess.check_call(["pip", "install", "-q", "-r", req_path])
|
subprocess.check_call(["pip", "install", "-q", "-r", req_path])
|
||||||
|
except subprocess.CalledProcessError:
|
||||||
|
sys.exit("Pip failed to execute properly.")
|
||||||
|
except OSError:
|
||||||
|
sys.exit("Pip not found. Please install pip and verify permissions"
|
||||||
|
" prior to running mach.")
|
||||||
|
|
||||||
os.utime(marker_path, None)
|
os.utime(marker_path, None)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue