diff --git a/.gitignore b/.gitignore index 8bb23235..7e27b2c9 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ dist git_review.egg-info MANIFEST .tox +requirements.txt diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index f3fd43fd..00000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -argparse==1.2.1 -wsgiref==0.1.2 diff --git a/setup.py b/setup.py index c0bdad15..258c3635 100755 --- a/setup.py +++ b/setup.py @@ -24,6 +24,7 @@ __name__ = "not-main" exec(open("git-review", "r")) __name__ = savename + class git_review_install(install): # Force single-version-externally-managed # This puts the manpage in the right location (instead of buried @@ -33,28 +34,40 @@ class git_review_install(install): git_review_cmdclass = {'install': git_review_install} + def parse_requirements(file_name): requirements = [] - for line in open(file_name, 'r').read().split('\n'): - if re.match(r'(\s*#)|(\s*$)', line): - continue - if re.match(r'\s*-e\s+', line): - requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', line)) - elif re.match(r'\s*-f\s+', line): - pass - else: - requirements.append(line) + if os.path.exists(file_name): + for line in open(file_name, 'r').read().split('\n'): + if re.match(r'(\s*#)|(\s*$)', line): + continue + if re.match(r'\s*-e\s+', line): + requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', r'\1', + line)) + elif re.match(r'\s*-f\s+', line): + pass + else: + requirements.append(line) return requirements + def parse_dependency_links(file_name): dependency_links = [] - for line in open(file_name, 'r').read().split('\n'): - if re.match(r'\s*-[ef]\s+', line): - dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) - + if os.path.exists(file_name): + for line in open(file_name, 'r').read().split('\n'): + if re.match(r'\s*-[ef]\s+', line): + dependency_links.append(re.sub(r'\s*-[ef]\s+', '', line)) return dependency_links +venv = os.environ.get('VIRTUAL_ENV', None) +if venv is not None: + with open("requirements.txt", "w") as req_file: + output = subprocess.Popen(["pip", "-E", venv, "freeze", "-l"], + stdout=subprocess.PIPE) + requirements = output.communicate()[0].strip() + req_file.write(requirements) + setup( name='git-review', version=version, diff --git a/tox.ini b/tox.ini index af9e1009..e7275f22 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,10 @@ envlist = py26,py27 [testenv] -#deps = -r{toxinidir}/tools/pip-requires +setenv = VIRTUAL_ENV={envdir} deps = pep8 -commands = pep8 git-review + argparse +commands = pep8 --show-source setup.py git-review +[testenv:sdist] +commands = python setup.py sdist {posargs}