diff --git a/melange/openstack/common/setup.py b/melange/openstack/common/setup.py index 28f5e6f5..ff716b40 100644 --- a/melange/openstack/common/setup.py +++ b/melange/openstack/common/setup.py @@ -85,3 +85,28 @@ def write_requirements(): stdout=subprocess.PIPE) requirements = output.communicate()[0].strip() req_file.write(requirements) + + +def run_git_command(cmd): + output = subprocess.Popen(["/bin/sh", "-c", cmd], + stdout=subprocess.PIPE) + return output.communicate()[0].strip() + + +def write_vcsversion(location): + if os.path.isdir('.git'): + branch_nick_cmd = 'git branch | grep -Ei "\* (.*)" | cut -f2 -d" "' + branch_nick = run_git_command(branch_nick_cmd) + revid_cmd = "git --no-pager log --max-count=1 --pretty=oneline" + revid = run_git_command(revid_cmd).split()[0] + revno_cmd = "git --no-pager log --oneline | wc -l" + revno = run_git_command(revno_cmd) + with open(location, 'w') as version_file: + version_file.write(""" +# This file is automatically generated by setup.py, So don't edit it. :) +version_info = { + 'branch_nick': '%s', + 'revision_id': '%s', + 'revno': %s +} +""" % (branch_nick, revid, revno)) diff --git a/setup.py b/setup.py index 8feaadbe..dafd5793 100644 --- a/setup.py +++ b/setup.py @@ -30,34 +30,12 @@ from melange.openstack.common.setup import parse_mailmap, str_dict_replace from melange.openstack.common.setup import parse_requirements from melange.openstack.common.setup import parse_dependency_links from melange.openstack.common.setup import write_requirements +from melange.openstack.common.setup import write_vcsversion +from melange.openstack.common.setup import run_git_command from melange import version -def run_git_command(cmd): - output = subprocess.Popen(["/bin/sh", "-c", cmd], - stdout=subprocess.PIPE) - return output.communicate()[0].strip() - - -if os.path.isdir('.git'): - branch_nick_cmd = 'git branch | grep -Ei "\* (.*)" | cut -f2 -d" "' - branch_nick = run_git_command(branch_nick_cmd) - revid_cmd = "git --no-pager log --max-count=1 | cut -f2 -d' ' | head -1" - revid = run_git_command(revid_cmd) - revno_cmd = "git --no-pager log --oneline | wc -l" - revno = run_git_command(revno_cmd) - with open("melange/vcsversion.py", 'w') as version_file: - version_file.write(""" -# This file is automatically generated by setup.py, So don't edit it. :) -version_info = { - 'branch_nick': '%s', - 'revision_id': '%s', - 'revno': %s -} -""" % (branch_nick, revid, revno)) - - class local_sdist(sdist): """Customized sdist hook - builds the ChangeLog file from VC first""" def run(self): @@ -97,12 +75,11 @@ try: except: pass -requires = parse_requirements(['requirements.txt', 'tools/pip-requires']) - -depend_links = parse_dependency_links(['requirements.txt', - 'tools/pip-requires']) +requires = parse_requirements() +depend_links = parse_dependency_links() write_requirements() +write_vcsversion('melange/vcsversion.py') setup(name='melange', version=version.canonical_version_string(), diff --git a/tox.ini b/tox.ini index 38a9a16b..674c2047 100644 --- a/tox.ini +++ b/tox.ini @@ -4,6 +4,7 @@ envlist = py26,py27,pep8 [testenv] setenv = VIRTUAL_ENV={envdir} deps = -r{toxinidir}/tools/pip-requires + -r{toxinidir}/tools/test-requires commands = nosetests [testenv:pep8]