summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-05-29 12:25:20 +0100
committerLars Wirzenius <liw@liw.fi>2011-05-29 12:25:20 +0100
commit9d0de5d9bf96afb4576dbe40b9a02bcad3ab29a8 (patch)
tree60d5d1786fc19b4bd78bab6ffac2a5fcf7307203
parent049d8f73889f2d3eba313e8de9d7bc16bdeb9184 (diff)
downloadunperish-9d0de5d9bf96afb4576dbe40b9a02bcad3ab29a8.tar.gz
Mangle debian/changelog for alternate upload targets.
And some other changes. I miss "bzr gcommit".
-rwxr-xr-xunperish43
1 files 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
@@ -61,13 +77,17 @@ class Unperish(cliapp.Application):
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,
self.upstream_version)
@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))