diff options
| -rwxr-xr-x | setup.py | 25 | 
1 files changed, 24 insertions, 1 deletions
| @@ -18,11 +18,14 @@ import tempfile  import setuptools  from setuptools.command.install import install +from setuptools.command.egg_info import egg_info  from distutils.errors import DistutilsArgError  import subprocess +RENDERED_TMPD_PREFIX = "RENDERED_TEMPD" +  def is_f(p):      return os.path.isfile(p) @@ -107,7 +110,7 @@ def render_tmpl(template):          return template      topdir = os.path.dirname(sys.argv[0]) -    tmpd = tempfile.mkdtemp(dir=topdir) +    tmpd = tempfile.mkdtemp(dir=topdir, prefix=RENDERED_TMPD_PREFIX)      atexit.register(shutil.rmtree, tmpd)      bname = os.path.basename(template).rstrip(tmpl_ext)      fpath = os.path.join(tmpd, bname) @@ -156,6 +159,25 @@ elif os.path.isfile('/etc/redhat-release'):      USR_LIB_EXEC = "usr/libexec" +class MyEggInfo(egg_info): +    """This makes sure to not include the rendered files in SOURCES.txt.""" + +    def find_sources(self): +        ret = egg_info.find_sources(self) +        # update the self.filelist. +        self.filelist.exclude_pattern(RENDERED_TMPD_PREFIX + ".*", +                                      is_regex=True) +        # but since mfname is already written we have to update it also. +        mfname = os.path.join(self.egg_info, "SOURCES.txt") +        if os.path.exists(mfname): +            with open(mfname) as fp: +                files = [f for f in fp +                         if not f.startswith(RENDERED_TMPD_PREFIX)] +            with open(mfname, "w") as fp: +                fp.write(''.join(files)) +        return ret + +  # TODO: Is there a better way to do this??  class InitsysInstallData(install):      init_system = None @@ -229,6 +251,7 @@ if os.uname()[0] != 'FreeBSD':  # adding on the right init system configuration files  cmdclass = {      'install': InitsysInstallData, +    'egg_info': MyEggInfo,  }  requirements = read_requires() | 
