diff --git a/setup.py b/setup.py index ee823df9..2bb1e16d 100644 --- a/setup.py +++ b/setup.py @@ -1,11 +1,24 @@ from distutils.core import setup +from distutils.errors import DistutilsError import os import re import subprocess -if not os.path.exists(os.path.join('cdist', 'version.py')): - subprocess.run([os.path.join('bin', 'build-helper'), 'version', ]) +# We have it only if it is a git cloned repo. +build_helper = os.path.join('bin', 'build-helper') +# Version file path. +version_file = os.path.join('cdist', 'version.py') +# If we have build-helper we could be a git repo. +if os.path.exists(build_helper): + # Try to generate version.py. + rv = subprocess.run([build_helper, 'version', ]) + if rv.returncode != 0: + raise DistutilsError("Failed to generate {}".format(version_file)) +else: + # Otherwise, version.py should be present. + if not os.path.exists(version_file): + raise DistutilsError("Missing version file {}".format(version_file)) import cdist