From 9d0de5d9bf96afb4576dbe40b9a02bcad3ab29a8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 29 May 2011 12:25:20 +0100 Subject: Mangle debian/changelog for alternate upload targets. And some other changes. I miss "bzr gcommit". --- unperish | 43 ++++++++++++++++++++++++++++++++++++++----- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/unperish b/unperish index 07f59be..c5218f1 100755 --- a/unperish +++ b/unperish @@ -17,6 +17,7 @@ import cliapp import ConfigParser +import debian.changelog import debian.deb822 import glob import logging @@ -38,10 +39,25 @@ class Unperish(cliapp.Application): default='..') self.settings.string(['basetgz'], 'pbuilder basetgz (%default)', default='/var/cache/pbuilder/base.tgz') + self.settings.string(['upload-target'], + 'generate debian/changelog entry for uploading ' + 'to given target') def process_args(self, args): self.meta = self.read_meta() - self.debian_control = debian.deb822.Deb822(open('debian/control')) + + try: + with open(self.join(self.dirname, 'debian', 'control')) as f: + self.debian_control = debian.deb822.Deb822(f) + except IOError: + pass + + try: + with open(self.join(self.dirname, 'debian', 'changelog')) as f: + self.debian_changelog = debian.changelog.Changelog(f) + except IOError: + pass + return cliapp.Application.process_args(self, args) @property @@ -60,6 +76,10 @@ class Unperish(cliapp.Application): def debian_source_package(self): return self.debian_control['Source'] + @property + def debian_version(self): + return self.debian_changelog.get_version() + @property def debian_tarball(self): return '%s_%s.orig.tar.gz' % (self.debian_source_package, @@ -67,7 +87,7 @@ class Unperish(cliapp.Application): @property def dirname(self): - return '%s-%s' % (self.debian_source_package, self.upstream_version) + return '%s-%s' % (self.upstream_name, self.upstream_version) def cmd_dump_meta(self, args): self.meta.write(self.output) @@ -80,11 +100,14 @@ class Unperish(cliapp.Application): self.runcmd('bzr', 'export', origtar) def cmd_dsc(self, args): + if self.settings['upload-target']: + self.add_debian_changelog_entry() self.runcmd('dpkg-source', '-b', self.dirname, cwd=self.settings['build-area']) def cmd_deb(self, args): - dsc = glob.glob(self.join('*.dsc'))[0] + pat = '%s_%s.dsc' % (self.debian_source_package, self.debian_version) + dsc = glob.glob(self.join(pat))[0] argv = ['sudo', 'pbuilder', '--build', @@ -94,13 +117,23 @@ class Unperish(cliapp.Application): dsc] self.runcmd(*argv, cwd=self.settings['build-area']) + def add_debian_changelog_entry(self): + target = self.settings['upload-target'] + self.runcmd('dch', + '--force-distribution', + '--local', target, + '--distribution', target, + 'Build for %s.' % target, + cwd=self.join(self.dirname)) + def read_meta(self): cp = ConfigParser.RawConfigParser() cp.read(self.metafilename) return cp - def join(self, pathname): - return os.path.join(self.settings['build-area'], pathname) + def join(self, *components): + components = (self.settings['build-area'],) + components + return os.path.join(*components) def runcmd(self, *argv, **kwargs): logging.debug('runcmd: %s' % repr(argv)) -- cgit v1.2.1