From 65d68bb1b4d1e0728118dc98d9fb26828034c7e0 Mon Sep 17 00:00:00 2001 From: James Tanner Date: Tue, 5 Nov 2013 18:51:41 -0500 Subject: [PATCH] Addresses #4735 Verify the virtualenv command supports --no-site-packages before passing it --- library/packaging/pip | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/library/packaging/pip b/library/packaging/pip index 7f293c5c02..49067dc119 100644 --- a/library/packaging/pip +++ b/library/packaging/pip @@ -144,6 +144,17 @@ EXAMPLES = ''' - pip: name=bottle executable=pip-3.3 ''' +def _get_cmd_options(module, cmd): + thiscmd = cmd + " --help" + rc, stdout, stderr = module.run_command(thiscmd) + #import epdb; epdb.serve() + if rc != 0: + module.fail_json(msg="Could not get --help output from %s" % virtualenv) + + words = stdout.strip().split() + cmd_options = [ x for x in words if x.startswith('--') ] + return cmd_options + def _get_full_name(name, version=None): if version is None: @@ -247,7 +258,11 @@ def main(): if module.params['virtualenv_site_packages']: cmd = '%s --system-site-packages %s' % (virtualenv, env) else: - cmd = '%s --no-site-packages %s' % (virtualenv, env) + cmd_opts = _get_cmd_options(module, virtualenv) + if '--no-site-packages' in cmd_opts: + cmd = '%s --no-site-packages %s' % (virtualenv, env) + else: + cmd = '%s %s' % (virtualenv, env) os.chdir(tempfile.gettempdir()) if chdir: os.chdir(chdir)