From 3760868eb0953384e67a43b084cef72c321fa051 Mon Sep 17 00:00:00 2001 From: Tyler Smith Date: Fri, 11 Mar 2011 19:14:38 -0500 Subject: [PATCH] Fix for Bug #888820 - pip-requires file support for plugins Change-Id: I6e0833ec0c875ec38db419a88fd6c2db02142f08 --- plugins/cisco-plugin/pip-requires | 1 + tools/install_venv.py | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 plugins/cisco-plugin/pip-requires diff --git a/plugins/cisco-plugin/pip-requires b/plugins/cisco-plugin/pip-requires new file mode 100644 index 00000000000..3d710597b93 --- /dev/null +++ b/plugins/cisco-plugin/pip-requires @@ -0,0 +1 @@ +http://github.com/CiscoSystems/ncclient.git diff --git a/tools/install_venv.py b/tools/install_venv.py index f6fb708f062..16db235873e 100644 --- a/tools/install_venv.py +++ b/tools/install_venv.py @@ -31,7 +31,14 @@ import sys ROOT = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) VENV = os.path.expanduser('~/.quantum-venv') VENV_EXISTS = bool(os.path.exists(VENV)) -PIP_REQUIRES = os.path.join(ROOT, 'tools', 'pip-requires') + +# Find all pip-requires in the project +PIP_REQUIRES = [] +for root, dirs, files in os.walk(os.path.join(ROOT)): + for f in files: + if f == 'pip-requires': + if os.path.isfile(os.path.join(root, f)): + PIP_REQUIRES.append(os.path.join(root, f)) def die(message, *args): @@ -92,8 +99,12 @@ def install_dependencies(venv=VENV): # Install greenlet by hand - just listing it in the requires file does not # get it in stalled in the right order - run_command(['tools/with_venv.sh', 'pip', 'install', '-E', venv, - '-r', PIP_REQUIRES], redirect_output=False) + # Create an install command with all found PIP_REQUIRES + cmd = ['tools/with_venv.sh', 'pip', 'install', '-E', venv] + for p in PIP_REQUIRES: + cmd.extend(['-r', p]) + + run_command(cmd, redirect_output=False) # Tell the virtual env how to "import quantum" pthfile = os.path.join(venv, "lib", "python2.6", "site-packages",