mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00

This is a conservative version of SF patch 504889. It uses the log module instead of calling print in various places, and it ignores the verbose argument passed to many functions and set as an attribute on some objects. Instead, it uses the verbosity set on the logger via the command line. The log module is now preferred over announce() and warn() methods that exist only for backwards compatibility. XXX This checkin changes a lot of modules that have no test suite and aren't exercised by the Python build process. It will need substantial testing.
109 lines
3.5 KiB
Python
109 lines
3.5 KiB
Python
"""distutils.command.bdist_dumb
|
|
|
|
Implements the Distutils 'bdist_dumb' command (create a "dumb" built
|
|
distribution -- i.e., just an archive to be unpacked under $prefix or
|
|
$exec_prefix)."""
|
|
|
|
# created 2000/03/29, Greg Ward
|
|
|
|
__revision__ = "$Id$"
|
|
|
|
import os
|
|
from distutils.core import Command
|
|
from distutils.util import get_platform
|
|
from distutils.dir_util import create_tree, remove_tree
|
|
from distutils.errors import *
|
|
from distutils import log
|
|
|
|
class bdist_dumb (Command):
|
|
|
|
description = "create a \"dumb\" built distribution"
|
|
|
|
user_options = [('bdist-dir=', 'd',
|
|
"temporary directory for creating the distribution"),
|
|
('plat-name=', 'p',
|
|
"platform name to embed in generated filenames "
|
|
"(default: %s)" % get_platform()),
|
|
('format=', 'f',
|
|
"archive format to create (tar, ztar, gztar, zip)"),
|
|
('keep-temp', 'k',
|
|
"keep the pseudo-installation tree around after " +
|
|
"creating the distribution archive"),
|
|
('dist-dir=', 'd',
|
|
"directory to put final built distributions in"),
|
|
('skip-build', None,
|
|
"skip rebuilding everything (for testing/debugging)"),
|
|
]
|
|
|
|
boolean_options = ['keep-temp', 'skip-build']
|
|
|
|
default_format = { 'posix': 'gztar',
|
|
'nt': 'zip',
|
|
'os2': 'zip' }
|
|
|
|
|
|
def initialize_options (self):
|
|
self.bdist_dir = None
|
|
self.plat_name = None
|
|
self.format = None
|
|
self.keep_temp = 0
|
|
self.dist_dir = None
|
|
self.skip_build = 0
|
|
|
|
# initialize_options()
|
|
|
|
|
|
def finalize_options (self):
|
|
|
|
if self.bdist_dir is None:
|
|
bdist_base = self.get_finalized_command('bdist').bdist_base
|
|
self.bdist_dir = os.path.join(bdist_base, 'dumb')
|
|
|
|
if self.format is None:
|
|
try:
|
|
self.format = self.default_format[os.name]
|
|
except KeyError:
|
|
raise DistutilsPlatformError, \
|
|
("don't know how to create dumb built distributions " +
|
|
"on platform %s") % os.name
|
|
|
|
self.set_undefined_options('bdist',
|
|
('dist_dir', 'dist_dir'),
|
|
('plat_name', 'plat_name'))
|
|
|
|
# finalize_options()
|
|
|
|
|
|
def run (self):
|
|
|
|
if not self.skip_build:
|
|
self.run_command('build')
|
|
|
|
install = self.reinitialize_command('install', reinit_subcommands=1)
|
|
install.root = self.bdist_dir
|
|
install.skip_build = self.skip_build
|
|
install.warn_dir = 0
|
|
|
|
log.info("installing to %s" % self.bdist_dir)
|
|
self.run_command('install')
|
|
|
|
# And make an archive relative to the root of the
|
|
# pseudo-installation tree.
|
|
archive_basename = "%s.%s" % (self.distribution.get_fullname(),
|
|
self.plat_name)
|
|
|
|
# OS/2 objects to any ":" characters in a filename (such as when
|
|
# a timestamp is used in a version) so change them to hyphens.
|
|
if os.name == "os2":
|
|
archive_basename = archive_basename.replace(":", "-")
|
|
|
|
self.make_archive(os.path.join(self.dist_dir, archive_basename),
|
|
self.format,
|
|
root_dir=self.bdist_dir)
|
|
|
|
if not self.keep_temp:
|
|
remove_tree(self.bdist_dir, dry_run=self.dry_run)
|
|
|
|
# run()
|
|
|
|
# class bdist_dumb
|