+++ /dev/null
-"""distutils.command.bdist_dumb\r
-\r
-Implements the Distutils 'bdist_dumb' command (create a "dumb" built\r
-distribution -- i.e., just an archive to be unpacked under $prefix or\r
-$exec_prefix)."""\r
-\r
-__revision__ = "$Id$"\r
-\r
-import os\r
-\r
-from sysconfig import get_python_version\r
-\r
-from distutils.util import get_platform\r
-from distutils.core import Command\r
-from distutils.dir_util import remove_tree, ensure_relative\r
-from distutils.errors import DistutilsPlatformError\r
-from distutils import log\r
-\r
-class bdist_dumb (Command):\r
-\r
- description = 'create a "dumb" built distribution'\r
-\r
- user_options = [('bdist-dir=', 'd',\r
- "temporary directory for creating the distribution"),\r
- ('plat-name=', 'p',\r
- "platform name to embed in generated filenames "\r
- "(default: %s)" % get_platform()),\r
- ('format=', 'f',\r
- "archive format to create (tar, ztar, gztar, zip)"),\r
- ('keep-temp', 'k',\r
- "keep the pseudo-installation tree around after " +\r
- "creating the distribution archive"),\r
- ('dist-dir=', 'd',\r
- "directory to put final built distributions in"),\r
- ('skip-build', None,\r
- "skip rebuilding everything (for testing/debugging)"),\r
- ('relative', None,\r
- "build the archive using relative paths"\r
- "(default: false)"),\r
- ('owner=', 'u',\r
- "Owner name used when creating a tar file"\r
- " [default: current user]"),\r
- ('group=', 'g',\r
- "Group name used when creating a tar file"\r
- " [default: current group]"),\r
- ]\r
-\r
- boolean_options = ['keep-temp', 'skip-build', 'relative']\r
-\r
- default_format = { 'posix': 'gztar',\r
- 'nt': 'zip',\r
- 'os2': 'zip' }\r
-\r
-\r
- def initialize_options (self):\r
- self.bdist_dir = None\r
- self.plat_name = None\r
- self.format = None\r
- self.keep_temp = 0\r
- self.dist_dir = None\r
- self.skip_build = 0\r
- self.relative = 0\r
- self.owner = None\r
- self.group = None\r
-\r
- def finalize_options(self):\r
- if self.bdist_dir is None:\r
- bdist_base = self.get_finalized_command('bdist').bdist_base\r
- self.bdist_dir = os.path.join(bdist_base, 'dumb')\r
-\r
- if self.format is None:\r
- try:\r
- self.format = self.default_format[os.name]\r
- except KeyError:\r
- raise DistutilsPlatformError, \\r
- ("don't know how to create dumb built distributions " +\r
- "on platform %s") % os.name\r
-\r
- self.set_undefined_options('bdist',\r
- ('dist_dir', 'dist_dir'),\r
- ('plat_name', 'plat_name'))\r
-\r
- def run(self):\r
- if not self.skip_build:\r
- self.run_command('build')\r
-\r
- install = self.reinitialize_command('install', reinit_subcommands=1)\r
- install.root = self.bdist_dir\r
- install.skip_build = self.skip_build\r
- install.warn_dir = 0\r
-\r
- log.info("installing to %s" % self.bdist_dir)\r
- self.run_command('install')\r
-\r
- # And make an archive relative to the root of the\r
- # pseudo-installation tree.\r
- archive_basename = "%s.%s" % (self.distribution.get_fullname(),\r
- self.plat_name)\r
-\r
- # OS/2 objects to any ":" characters in a filename (such as when\r
- # a timestamp is used in a version) so change them to hyphens.\r
- if os.name == "os2":\r
- archive_basename = archive_basename.replace(":", "-")\r
-\r
- pseudoinstall_root = os.path.join(self.dist_dir, archive_basename)\r
- if not self.relative:\r
- archive_root = self.bdist_dir\r
- else:\r
- if (self.distribution.has_ext_modules() and\r
- (install.install_base != install.install_platbase)):\r
- raise DistutilsPlatformError, \\r
- ("can't make a dumb built distribution where "\r
- "base and platbase are different (%s, %s)"\r
- % (repr(install.install_base),\r
- repr(install.install_platbase)))\r
- else:\r
- archive_root = os.path.join(self.bdist_dir,\r
- ensure_relative(install.install_base))\r
-\r
- # Make the archive\r
- filename = self.make_archive(pseudoinstall_root,\r
- self.format, root_dir=archive_root,\r
- owner=self.owner, group=self.group)\r
- if self.distribution.has_ext_modules():\r
- pyversion = get_python_version()\r
- else:\r
- pyversion = 'any'\r
- self.distribution.dist_files.append(('bdist_dumb', pyversion,\r
- filename))\r
-\r
- if not self.keep_temp:\r
- remove_tree(self.bdist_dir, dry_run=self.dry_run)\r