diff options
author | Greg Ward <gward@python.net> | 2000-08-15 13:03:16 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-08-15 13:03:16 (GMT) |
commit | a12c195064f5fa51bf7c425a3b55aa103c3f5a7c (patch) | |
tree | a6d4948f95e6d5f796492f79f48e3341aa7bf384 /Lib/distutils | |
parent | c0fe82ca26b1da22e35f2d0676f09795d052e4f0 (diff) | |
download | cpython-a12c195064f5fa51bf7c425a3b55aa103c3f5a7c.zip cpython-a12c195064f5fa51bf7c425a3b55aa103c3f5a7c.tar.gz cpython-a12c195064f5fa51bf7c425a3b55aa103c3f5a7c.tar.bz2 |
Added support for the '--dist-dir' option, including a mildly nasty
hack to find the two created RPM files (source and binary) and
move them to the "dist dir" (default "dist").
Diffstat (limited to 'Lib/distutils')
-rw-r--r-- | Lib/distutils/command/bdist_rpm.py | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/Lib/distutils/command/bdist_rpm.py b/Lib/distutils/command/bdist_rpm.py index e45d7a3..1da0b81 100644 --- a/Lib/distutils/command/bdist_rpm.py +++ b/Lib/distutils/command/bdist_rpm.py @@ -8,6 +8,7 @@ distributions).""" __revision__ = "$Id$" import os, string +import glob from types import * from distutils.core import Command, DEBUG from distutils.util import get_platform @@ -24,6 +25,9 @@ class bdist_rpm (Command): ('rpm-base=', None, "base directory for creating RPMs (defaults to \"rpm\" under " "--bdist-base; must be specified for RPM 2)"), + ('dist-dir=', 'd', + "directory to put final RPM files in " + "(and .spec files if --spec-only)"), ('spec-only', None, "only regenerate spec file"), ('source-only', None, @@ -109,6 +113,7 @@ class bdist_rpm (Command): def initialize_options (self): self.bdist_base = None self.rpm_base = None + self.dist_dir = None self.spec_only = None self.binary_only = None self.source_only = None @@ -166,6 +171,7 @@ class bdist_rpm (Command): if not self.distribution.has_ext_modules(): self.use_rpm_opt_flags = 0 + self.set_undefined_options('bdist', ('dist_dir', 'dist_dir')) self.finalize_package_data() # finalize_options() @@ -226,8 +232,8 @@ class bdist_rpm (Command): # make directories if self.spec_only: - spec_dir = "dist" - self.mkpath(spec_dir) # XXX should be configurable + spec_dir = self.dist_dir + self.mkpath(spec_dir) else: rpm_dir = {} for d in ('SOURCES', 'SPECS', 'BUILD', 'RPMS', 'SRPMS'): @@ -235,8 +241,8 @@ class bdist_rpm (Command): self.mkpath(rpm_dir[d]) spec_dir = rpm_dir['SPECS'] - # Spec file goes into 'dist' directory if '--spec-only specified', - # into build/rpm.<plat> otherwise. + # Spec file goes into 'dist_dir' if '--spec-only specified', + # build/rpm.<plat> otherwise. spec_path = os.path.join(spec_dir, "%s.spec" % self.distribution.get_name()) self.execute(write_file, @@ -285,6 +291,19 @@ class bdist_rpm (Command): rpm_args.append(spec_path) self.spawn(rpm_args) + # XXX this is a nasty hack -- we really should have a proper way to + # find out the names of the RPM files created; also, this assumes + # that RPM creates exactly one source and one binary RPM. + if not self.dry_run: + srpms = glob.glob(os.path.join(rpm_dir['SRPMS'], "*.rpm")) + rpms = glob.glob(os.path.join(rpm_dir['RPMS'], "*/*.rpm")) + assert len(srpms) == 1, \ + "unexpected number of SRPM files found: %s" % srpms + assert len(rpms) == 1, \ + "unexpected number of RPM files found: %s" % rpms + self.move_file(srpms[0], self.dist_dir) + self.move_file(rpms[0], self.dist_dir) + # run() |