X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3dfc071494cbb0386ecd7269c72a435fc7f9cc24..39b166626a00b68780526ae4607bbbcf34d24a04:/services/fuse/setup.py diff --git a/services/fuse/setup.py b/services/fuse/setup.py index be9e4e64a5..a1b1dca72e 100644 --- a/services/fuse/setup.py +++ b/services/fuse/setup.py @@ -5,21 +5,27 @@ import subprocess import time from setuptools import setup, find_packages +from setuptools.command.egg_info import egg_info SETUP_DIR = os.path.dirname(__file__) README = os.path.join(SETUP_DIR, 'README.rst') -cmd_opts = {'egg_info': {}} -try: - git_tags = subprocess.check_output( - ['git', 'log', '--first-parent', '--max-count=1', - '--format=format:%ct %h', SETUP_DIR]).split() - assert len(git_tags) == 2 -except (AssertionError, OSError, subprocess.CalledProcessError): - pass -else: - git_tags[0] = time.strftime('%Y%m%d%H%M%S', time.gmtime(int(git_tags[0]))) - cmd_opts['egg_info']['tag_build'] = '.{}.{}'.format(*git_tags) +class TagBuildWithCommit(egg_info): + """Tag the build with the sha1 and date of the last git commit. + + If a build tag has already been set (e.g., "egg_info -b", building + from source package), leave it alone. + """ + def tags(self): + if self.tag_build is None: + git_tags = subprocess.check_output( + ['git', 'log', '--first-parent', '--max-count=1', + '--format=format:%ct %h', SETUP_DIR]).split() + assert len(git_tags) == 2 + git_tags[0] = time.strftime( + '%Y%m%d%H%M%S', time.gmtime(int(git_tags[0]))) + self.tag_build = '.{}.{}'.format(*git_tags) + return egg_info.tags(self) setup(name='arvados_fuse', @@ -36,12 +42,12 @@ setup(name='arvados_fuse', 'bin/arv-mount' ], install_requires=[ - 'arvados-python-client>=0.1.1411069908.8ba7f94', # 2014-09-18 + 'arvados-python-client>=0.1.20141103223015.68dae83', 'llfuse', 'python-daemon' ], test_suite='tests', tests_require=['PyYAML'], zip_safe=False, - options=cmd_opts, + cmdclass={'egg_info': TagBuildWithCommit}, )