diff options
author | Guido Guenther <agx@sigxcpu.org> | 2008-05-17 16:23:52 +0200 |
---|---|---|
committer | Guido Guenther <agx@sigxcpu.org> | 2008-05-17 16:23:52 +0200 |
commit | 2cfbf050329b52971e5390ec6ef6416bcbc3d67e (patch) | |
tree | 8d060936da75c8e3c172c84e1b0e025279659b1e /git-import-dsc | |
parent | ce152d4078c0fc93845865cadda816c7c9ebabe4 (diff) |
move dsc handling into deb_utils
Diffstat (limited to 'git-import-dsc')
-rwxr-xr-x | git-import-dsc | 69 |
1 files changed, 1 insertions, 68 deletions
diff --git a/git-import-dsc b/git-import-dsc index 442cbc1f..c8e34a5d 100755 --- a/git-import-dsc +++ b/git-import-dsc @@ -25,77 +25,12 @@ import glob import pipes from email.Utils import parseaddr import gbp.command_wrappers as gbpc -from gbp.deb_utils import debian_version_chars, parse_changelog, unpack_orig +from gbp.deb_utils import debian_version_chars, parse_changelog, unpack_orig, parse_dsc, DscFile from gbp.git_utils import build_tag, GitRepository, GitRepositoryError, replace_source_tree, rfc822_date_to_git from gbp.config import GbpOptionParser from gbp.errors import GbpError -class DscFile(object): - """Keeps all needed data read from a dscfile""" - pkg_re = re.compile('Source:\s+(?P<pkg>.+)\s*') - version_re = re.compile("Version:\s(\d+\:)?(?P<version>[%s]+)\s*$" % debian_version_chars) - tar_re = re.compile('^\s\w+\s\d+\s+(?P<tar>[^_]+_[^_]+(\.orig)?\.tar\.(gz|bz2))') - diff_re = re.compile('^\s\w+\s\d+\s+(?P<diff>[^_]+_[^_]+\.diff.(gz|bz2))') - - def __init__(self, dscfile): - self.pkg = "" - self.tgz = "" - self.diff = "" - self.dscfile = os.path.abspath(dscfile) - f = file(self.dscfile) - fromdir = os.path.dirname(os.path.abspath(dscfile)) - for line in f: - m = self.version_re.match(line) - if m: - if '-' in m.group('version'): - self.debian_version = m.group('version').split("-")[-1] - self.upstream_version = "-".join(m.group('version').split("-")[0:-1]) - self.native = False - else: - self.native = True # Debian native package - self.upstream_version = m.group('version') - continue - m = self.pkg_re.match(line) - if m: - self.pkg = m.group('pkg') - continue - m = self.tar_re.match(line) - if m: - self.tgz = os.path.join(fromdir, m.group('tar')) - continue - m = self.diff_re.match(line) - if m: - self.diff = os.path.join(fromdir, m.group('diff')) - continue - f.close() - if not self.pkg: - raise GbpError, "Cannot parse package name from %s" % self.dscfile - elif not self.tgz: - raise GbpError, "Cannot parse archive name from %s" % self.dscfile - - -def parse_dsc(dscfile): - """parse dsc by creating a DscFile object""" - try: - dsc = DscFile(dscfile) - except IOError, err: - print >>sys.stderr, "Error reading dsc file: %s" % err - dsc = None - else: - try: - if dsc.native: - print "Debian Native Package" - print "Version:", dsc.upstream_version - else: - print "Upstream version:", dsc.upstream_version - print "Debian version:", dsc.debian_version - except AttributeError: - print >>sys.stderr, "Error parsing dsc file %s" % dscfile - dsc = None - return dsc - - def import_initial(src, dirs, options): """ import the intial version and (in the case of a non native package) create @@ -225,8 +160,6 @@ def main(argv): raise GbpError else: src = parse_dsc(args[0]) - if not src: - raise GbpError try: repo = GitRepository('.') |