summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xunperish59
1 files changed, 41 insertions, 18 deletions
diff --git a/unperish b/unperish
index e445582..2626694 100755
--- a/unperish
+++ b/unperish
@@ -128,6 +128,26 @@ class Unperish(cliapp.Application):
def dirname(self):
return '%s-%s' % (self.upstream_name, self.upstream_version)
+ @property
+ def dsc(self):
+ return '%s_%s.dsc' % (self.debian_source_package, self.debian_version)
+
+ @property
+ def changes(self):
+ arch = self.runcmd(['dpkg', '--print-architecture']).strip()
+ return '%s_%s_%s.changes' % (self.debian_source_package,
+ self.debian_version,
+ arch)
+
+ def already_exists(self, filename):
+ '''Does a file already exist?'''
+ if os.path.exists(filename):
+ logging.debug('Already exists: %s' % filename)
+ return True
+ else:
+ logging.debug('Does not already exist: %s' % filename)
+ return False
+
def cmd_dump_meta(self, args):
'''Print out contents of project meta file (project.meta).'''
self.meta.write(self.output)
@@ -142,17 +162,21 @@ class Unperish(cliapp.Application):
if not self.settings['dsc']:
raise cliapp.AppException('Need --dsc option for dget')
- self.runcmd(['dget', '--download-only', self.settings['dsc']],
- cwd=self.settings['build-area'])
+ basename = os.path.basename(self.settings['dsc'])
+ if not self.already_exists(self.join(basename)):
+ self.runcmd(['dget', '--download-only', self.settings['dsc']],
+ cwd=self.settings['build-area'])
def cmd_export(self, args):
'''Export unpacked source directory to build area.'''
- self.runcmd(['bzr', 'export', self.join(self.dirname)])
+ if not self.already_exists(self.join(self.dirname)):
+ self.runcmd(['bzr', 'export', self.join(self.dirname)])
def cmd_debian_tarball(self, args):
'''Generate Debian tarball (.orig.tar.gz) in build area.'''
origtar = self.join(self.debian_tarball)
- self.runcmd(['bzr', 'export', origtar])
+ if not self.already_exists(origtar):
+ self.runcmd(['bzr', 'export', origtar])
def cmd_dch(self, args):
'''Add a debian/changelog entry for new upload target.'''
@@ -163,25 +187,24 @@ class Unperish(cliapp.Application):
def cmd_dsc(self, args):
'''Create Debian source package (.dsc) in build area.'''
self.run_subcommand('export')
- self.run_subcommand('dch')
self.run_subcommand('debian-tarball')
- self.runcmd(['dpkg-source', '-b', self.dirname],
- cwd=self.settings['build-area'])
+ if not self.already_exists(self.join(self.dsc)):
+ self.runcmd(['dpkg-source', '-b', self.dirname],
+ cwd=self.settings['build-area'])
def cmd_deb(self, args):
'''Build Debian binary packages (.deb) in build area.'''
self.run_subcommand('dsc')
- pat = '%s_%s.dsc' % (self.debian_source_package, self.debian_version)
- dsc = glob.glob(self.join(pat))[0]
- argv = ['sudo',
- 'pbuilder',
- '--build',
- '--basetgz', self.settings['basetgz'],
- '--buildresult', self.settings['build-area'],
- '--logfile', self.join('pbuilder.log'),
- '--debbuildopts', '-sa',
- dsc]
- self.runcmd(argv, cwd=self.settings['build-area'])
+ if not self.already_exists(self.join(self.changes)):
+ argv = ['sudo',
+ 'pbuilder',
+ '--build',
+ '--basetgz', self.settings['basetgz'],
+ '--buildresult', self.settings['build-area'],
+ '--logfile', self.join('pbuilder.log'),
+ '--debbuildopts', '-sa',
+ self.join(self.dsc)]
+ self.runcmd(argv, cwd=self.settings['build-area'])
def cmd_lintian(self, args):
'''Run lintian on .changes/.deb/.dsc files.'''