"""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
# This module should be kept compatible with Python 2.1.
__revision__
= "$Id: bdist_dumb.py,v 1.25 2004/11/10 22:23:14 loewis Exp $"
from distutils
.core
import Command
from distutils
.util
import get_platform
from distutils
.dir_util
import create_tree
, remove_tree
, ensure_relative
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"),
"platform name to embed in generated filenames "
"(default: %s)" % get_platform()),
"archive format to create (tar, ztar, gztar, zip)"),
"keep the pseudo-installation tree around after " +
"creating the distribution archive"),
"directory to put final built distributions in"),
"skip rebuilding everything (for testing/debugging)"),
"build the archive using relative paths"
boolean_options
= ['keep-temp', 'skip-build', 'relative']
default_format
= { 'posix': 'gztar',
def initialize_options (self
):
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')
self
.format
= self
.default_format
[os
.name
]
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'))
self
.run_command('build')
install
= self
.reinitialize_command('install', reinit_subcommands
=1)
install
.root
= self
.bdist_dir
install
.skip_build
= self
.skip_build
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(),
# OS/2 objects to any ":" characters in a filename (such as when
# a timestamp is used in a version) so change them to hyphens.
archive_basename
= archive_basename
.replace(":", "-")
pseudoinstall_root
= os
.path
.join(self
.dist_dir
, archive_basename
)
archive_root
= self
.bdist_dir
if (self
.distribution
.has_ext_modules() and
(install
.install_base
!= install
.install_platbase
)):
raise DistutilsPlatformError
, \
("can't make a dumb built distribution where "
"base and platbase are different (%s, %s)"
% (repr(install
.install_base
),
repr(install
.install_platbase
)))
archive_root
= os
.path
.join(self
.bdist_dir
,
ensure_relative(install
.install_base
))
self
.make_archive(pseudoinstall_root
,
self
.format
, root_dir
=archive_root
)
remove_tree(self
.bdist_dir
, dry_run
=self
.dry_run
)