summaryrefslogtreecommitdiffstats
path: root/Lib/distutils/command/bdist_packager.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/distutils/command/bdist_packager.py')
-rw-r--r--Lib/distutils/command/bdist_packager.py227
1 files changed, 0 insertions, 227 deletions
diff --git a/Lib/distutils/command/bdist_packager.py b/Lib/distutils/command/bdist_packager.py
deleted file mode 100644
index 1960425..0000000
--- a/Lib/distutils/command/bdist_packager.py
+++ /dev/null
@@ -1,227 +0,0 @@
-"""distutils.command.bdist_ packager
-
-Modified from bdist_dumb by Mark W. Alexander <slash@dotnetslash.net>
-
-Implements the Distutils 'bdist_packager' abstract command
-to be subclassed by binary package creation commands.
-"""
-
-__revision__ = "$Id: bdist_packager.py,v 0.1 2001/04/4 mwa"
-
-import os
-from distutils.core import Command
-from distutils.util import get_platform
-from distutils.dir_util import create_tree, remove_tree
-from distutils.file_util import write_file
-from distutils.errors import *
-from distutils import log
-import string, sys
-
-class bdist_packager (Command):
-
- description = "abstract base for package manager specific bdist commands"
-
-# XXX update user_options
- user_options = [
- ('bdist-base=', None,
- "base directory for creating built distributions"),
- ('pkg-dir=', None,
- "base directory for creating binary packages (defaults to \"binary\" under "),
- ('dist-dir=', 'd',
- "directory to put final RPM files in "
- "(and .spec files if --spec-only)"),
- ('category=', None,
- "Software category (packager dependent format)"),
- ('revision=', None,
- "package revision number"),
- ('icon=', None,
- "Package icon"),
- ('subpackages=', None,
- "Comma seperated list of seperately packaged trees"),
- ('preinstall=', None,
- "preinstall script (Bourne shell code)"),
- ('postinstall=', None,
- "postinstall script (Bourne shell code)"),
- ('preremove=', None,
- "preremove script (Bourne shell code)"),
- ('postremove=', None,
- "postremove script (Bourne shell code)"),
- ('requires=', None,
- "capabilities required by this package"),
- ('keep-temp', 'k',
- "don't clean up RPM build directory"),
- ('control-only', None,
- "Generate package control files and stop"),
- ('no-autorelocate', None,
- "Inhibit automatic relocation to installed site-packages"),
- ]
-
- boolean_options = ['keep-temp', 'control-only', 'no_autorelocate']
-
- def ensure_string_not_none (self,option,default=None):
- val = getattr(self,option)
- if val is not None:
- return
- Command.ensure_string(self,option,default)
- val = getattr(self,option)
- if val is None:
- raise DistutilsOptionError, "'%s' must be provided" % option
-
- def ensure_script(self, arg):
- if not arg:
- return
- try:
- self.ensure_string(arg)
- except:
- try:
- self.ensure_filename(arg)
- except:
- raise RuntimeError, "cannot decipher script option (%s)" % arg
-
- def write_script (self,path,attr,default=None):
- """ write the script specified in attr to path. if attr is None,
- write use default instead """
- val = getattr(self,attr)
- if not val:
- if not default:
- return
- else:
- setattr(self,attr,default)
- val = default
- if val != "":
- log.info('Creating %s script', attr)
- self.execute(write_file,
- (path, self.get_script(attr)),
- "writing '%s'" % path)
-
- def get_binary_name(self):
- py_ver = sys.version[0:string.find(sys.version,' ')]
- return self.name + '-' + self.version + '-' + \
- self.revision + '-' + py_ver
-
- def get_script (self, attr):
- # accept a script as a string ("line\012line\012..."),
- # a filename, or a list
- # XXX We could probably get away with copy_file, but I'm
- # guessing this will be more flexible later on....
- val = getattr(self, attr)
- if val is None:
- return None
- try:
- os.stat(val)
- # script is a file
- ret = []
- f = open(val)
- ret = string.split(f.read(), "\012");
- f.close()
- except:
- if type(val) == type(""):
- # script is a string
- ret = string.split(val, "\012")
- elif type(val) == type([]):
- # script is a list
- ret = val
- else:
- raise RuntimeError, \
- "cannot figure out what to do with 'request' option (%s)" \
- % val
- return ret
-
-
- def initialize_options (self):
- self.keep_temp = 0
- self.control_only = 0
- self.no_autorelocate = 0
- self.pkg_dir = None
- self.plat_name = None
- self.icon = None
- self.requires = None
- self.subpackages = None
- self.category = None
- self.revision = None
-
- # PEP 241 Metadata
- self.name = None
- self.version = None
- #self.url = None
- #self.author = None
- #self.author_email = None
- #self.maintainer = None
- #self.maintainer_email = None
- #self.description = None
- #self.long_description = None
- #self.licence = None
- #self.platforms = None
- #self.keywords = None
- self.root_package = None
-
- # package installation scripts
- self.preinstall = None
- self.postinstall = None
- self.preremove = None
- self.postremove = None
- # initialize_options()
-
-
- def finalize_options (self):
-
- if self.pkg_dir is None:
- bdist_base = self.get_finalized_command('bdist').bdist_base
- self.pkg_dir = os.path.join(bdist_base, 'binary')
-
- if not self.plat_name:
- self.plat = self.distribution.get_platforms()
- if self.distribution.has_ext_modules():
- self.plat_name = [sys.platform,]
- else:
- self.plat_name = ["noarch",]
-
- d = self.distribution
- self.ensure_string_not_none('name', d.get_name())
- self.ensure_string_not_none('version', d.get_version())
- self.ensure_string('category')
- self.ensure_string('revision',"1")
- #self.ensure_string('url',d.get_url())
- if type(self.distribution.packages) == type([]):
- self.root_package=self.distribution.packages[0]
- else:
- self.root_package=self.name
- self.ensure_string('root_package',self.root_package)
- #self.ensure_string_list('keywords')
- #self.ensure_string_not_none('author', d.get_author())
- #self.ensure_string_not_none('author_email', d.get_author_email())
- self.ensure_filename('icon')
- #self.ensure_string_not_none('maintainer', d.get_maintainer())
- #self.ensure_string_not_none('maintainer_email',
- #d.get_maintainer_email())
- #self.ensure_string_not_none('description', d.get_description())
- #self.ensure_string_not_none('long_description', d.get_long_description())
- #if self.long_description=='UNKNOWN':
- #self.long_description=self.description
- #self.ensure_string_not_none('license', d.get_license())
- self.ensure_string_list('requires')
- self.ensure_filename('preinstall')
- self.ensure_filename('postinstall')
- self.ensure_filename('preremove')
- self.ensure_filename('postremove')
-
- # finalize_options()
-
-
- def run (self):
-
- raise RuntimeError, \
- "abstract method -- subclass %s must override" % self.__class__
- self.run_command('build')
-
- install = self.reinitialize_command('install', reinit_subcommands=1)
- install.root = self.pkg_dir
-
- log.info("installing to %s", self.pkg_dir)
- self.run_command('install')
- if not self.keep_temp:
- remove_tree(self.pkg_dir, dry_run=self.dry_run)
-
- # run()
-
-# class bdist_packager