diff options
author | Rob Austein <sra@hactrn.net> | 2013-04-06 17:08:51 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2013-04-06 17:08:51 +0000 |
commit | ee4d2c18a53d627b3aa261d907cc055ec323377d (patch) | |
tree | 6b1c069cbae16f2a4795708fa3d7bb3adfe6d468 /rpkid/setup.py | |
parent | bab399d245e12d1eb91b0fd1d166d500b93802c1 (diff) |
Move our distutils extensions into a separate module.
svn path=/trunk/; revision=5288
Diffstat (limited to 'rpkid/setup.py')
-rw-r--r-- | rpkid/setup.py | 88 |
1 files changed, 3 insertions, 85 deletions
diff --git a/rpkid/setup.py b/rpkid/setup.py index 859f8aeb..ad960876 100644 --- a/rpkid/setup.py +++ b/rpkid/setup.py @@ -15,11 +15,7 @@ # PERFORMANCE OF THIS SOFTWARE. from distutils.core import setup, Extension -from distutils.util import change_root, convert_path -from distutils.command.build_scripts import build_scripts as _build_scripts -from distutils.command.install_scripts import install_scripts as _install_scripts -from distutils import log -from stat import S_IMODE +import setup_extensions import os try: @@ -46,84 +42,6 @@ except ImportError: ac_datarootdir = None ac_sysconfdir = None -class build_scripts(_build_scripts): - """ - Hacked version of distutils.build_scripts, designed to support - multiple target installation directories like install_data does. - - [(target_directory, [list_of_source_scripts]), ...] - - Most of the real work is in the companion hacked install_scripts, - but we need to tweak the list of source files that build_scripts - pulls out of the Distribution object. - """ - - def finalize_options(self): - _build_scripts.finalize_options(self) - self.scripts = [] - for script in self.distribution.scripts: - if isinstance(script, str): - self.scripts.append(script) - else: - self.scripts.extend(script[1]) - -class install_scripts(_install_scripts): - """ - Hacked version of distutils.install_scripts, designed to support - multiple target installation directories like install_data does. - - [(target_directory, [list_of_source_scripts]), ...] - - The code here is a tweaked combination of what the stock - install_scripts and install_data classes do. - """ - - user_options = _install_scripts.user_options + [ - ("root=", None, "install everything relative to this alternate root directory")] - - def initialize_options(self): - _install_scripts.initialize_options(self) - self.outfiles = [] - self.root = None - - def finalize_options (self): - self.set_undefined_options("build", - ("build_scripts", "build_dir")) - self.set_undefined_options("install", - ("install_scripts", "install_dir"), - ("root", "root"), - ("force", "force"), - ("skip_build", "skip_build")) - - def run(self): - if not self.skip_build: - self.run_command("build_scripts") - for script in self.distribution.scripts: - if isinstance(script, str): - fn = os.path.join(self.build_dir, os.path.basename(convert_path(script))) - out, _ = self.copy_file(fn, self.install_dir) - self.outfiles.append(out) - else: - dn = convert_path(script[0]) - if not os.path.isabs(dn): - dn = os.path.join(self.install_dir, dn) - elif self.root: - dn = change_root(self.root, dn) - self.mkpath(dn) - if not script[1]: - self.outfiles.append(dn) - else: - for s in script[1]: - fn = os.path.join(self.build_dir, os.path.basename(convert_path(s))) - out, _ = self.copy_file(fn, dn) - self.outfiles.append(out) - if os.name == "posix": - for fn in self.get_outputs(): - mode = S_IMODE(os.stat(fn).st_mode) | 0555 - log.info("changing mode of %s to %o", fn, mode) - if not self.dry_run: - os.chmod(fn, mode) - # pylint: disable=W0622 setup(name = "rpkitoolkit", @@ -131,8 +49,8 @@ setup(name = "rpkitoolkit", description = "RPKI Toolkit", license = "BSD", url = "http://rpki.net/", - cmdclass = {"build_scripts" : build_scripts, - "install_scripts" : install_scripts}, + cmdclass = {"build_scripts" : setup_extensions.build_scripts, + "install_scripts" : setup_extensions.install_scripts}, packages = ["rpki", "rpki.POW", "rpki.irdb", |