mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
parent
8547d132f9
commit
1a9263c2b4
1 changed files with 25 additions and 16 deletions
|
@ -71,27 +71,35 @@ CATEGORIES = {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def _get_exec(name, default=None):
|
def _get_exec(*names):
|
||||||
path = find_executable(name)
|
for name in names:
|
||||||
if not path:
|
path = find_executable(name)
|
||||||
return default
|
if path is not None:
|
||||||
return path
|
return path
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
|
# Possible names of executables, sorted from most to least specific
|
||||||
|
PYTHON_NAMES = ["python-2.7", "python2.7", "python2", "python"]
|
||||||
|
VIRTUALENV_NAMES = ["virtualenv-2.7", "virtualenv2.7", "virtualenv2", "virtualenv"]
|
||||||
|
PIP_NAMES = ["pip-2.7", "pip2.7", "pip2", "pip"]
|
||||||
|
|
||||||
|
|
||||||
def _activate_virtualenv(topdir):
|
def _activate_virtualenv(topdir):
|
||||||
virtualenv_path = os.path.join(topdir, "python", "_virtualenv")
|
virtualenv_path = os.path.join(topdir, "python", "_virtualenv")
|
||||||
python = _get_exec("python2", "python")
|
python = _get_exec(*PYTHON_NAMES)
|
||||||
|
if python is None:
|
||||||
|
sys.exit("Python is not installed. Please install it prior to running mach.")
|
||||||
|
|
||||||
if not os.path.exists(virtualenv_path):
|
if not os.path.exists(virtualenv_path):
|
||||||
virtualenv = _get_exec("virtualenv2", "virtualenv")
|
virtualenv = _get_exec(*VIRTUALENV_NAMES)
|
||||||
|
if virtualenv is None:
|
||||||
|
sys.exit("Python virtualenv is not installed. Please install it prior to running mach.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.check_call([virtualenv, "-p", python, virtualenv_path])
|
subprocess.check_call([virtualenv, "-p", python, virtualenv_path])
|
||||||
except subprocess.CalledProcessError:
|
except (subprocess.CalledProcessError, OSError):
|
||||||
sys.exit("Python virtualenv failed to execute properly.")
|
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))
|
||||||
|
@ -117,13 +125,14 @@ def _activate_virtualenv(topdir):
|
||||||
except OSError:
|
except OSError:
|
||||||
open(marker_path, 'w').close()
|
open(marker_path, 'w').close()
|
||||||
|
|
||||||
|
pip = _get_exec(*PIP_NAMES)
|
||||||
|
if pip is None:
|
||||||
|
sys.exit("Python pip is not installed. Please install it prior to running mach.")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
subprocess.check_call(["pip", "install", "-q", "-r", req_path])
|
subprocess.check_call([pip, "install", "-q", "-r", req_path])
|
||||||
except subprocess.CalledProcessError:
|
except (subprocess.CalledProcessError, OSError):
|
||||||
sys.exit("Pip failed to execute properly.")
|
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