diff options
author | Guido Guenther <agx@sigxcpu.org> | 2008-08-12 18:21:12 +0200 |
---|---|---|
committer | Guido Guenther <agx@sigxcpu.org> | 2008-08-12 18:21:12 +0200 |
commit | 32b2e89565f9c37bd3f3c40c77b5c19c5b1f0e2b (patch) | |
tree | 07d16c2bdfd35594adf35987bc4afc71b642a7c2 | |
parent | 64808dffa98ca2e5910707d2a763606ec8a91cb0 (diff) |
detect flat tar archives in git-import-dsc too
-rw-r--r-- | gbp/deb_utils.py | 10 | ||||
-rwxr-xr-x | git-import-dsc | 6 | ||||
-rwxr-xr-x | git-import-orig | 10 |
3 files changed, 15 insertions, 11 deletions
diff --git a/gbp/deb_utils.py b/gbp/deb_utils.py index 91e3fc23..a9bd1fbc 100644 --- a/gbp/deb_utils.py +++ b/gbp/deb_utils.py @@ -9,6 +9,7 @@ import os import re import shutil import sys +import glob import command_wrappers as gbpc from errors import GbpError @@ -192,6 +193,15 @@ def unpack_orig(archive, tmpdir, filters): return unpackArchive.dir +def tar_toplevel(dir): + """tar archives can contain a leading directory not""" + unpacked = glob.glob('%s/*' % dir) + if len(unpacked) == 1: + return unpacked[0] + else: + return dir + + def _test(): import doctest doctest.testmod() diff --git a/git-import-dsc b/git-import-dsc index aece7f9c..e82af2c1 100755 --- a/git-import-dsc +++ b/git-import-dsc @@ -25,7 +25,7 @@ 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, parse_dsc, DscFile +from gbp.deb_utils import debian_version_chars, parse_changelog, unpack_orig, parse_dsc, DscFile, tar_toplevel 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 @@ -182,7 +182,7 @@ def main(argv): msg = "%s version %s" % (format[1], src.upstream_version) if initial: - dirs['git'] = glob.glob('%s/*' % unpack_dir)[0] + dirs['git'] = tar_toplevel(unpack_dir) if not import_initial(src, dirs, options): raise GbpError gitTag(tag, msg=msg) @@ -195,7 +195,7 @@ def main(argv): raise GbpError else: # not the initial import dirs['git'] = dirs['top'] - unpack_dir = glob.glob('%s/*' % unpack_dir)[0] + unpack_dir = tar_toplevel(unpack_dir) if not repo.has_tag(tag): print "tag %s not found, importing %s tarball" % (tag, format[1]) # FIXME: this is what import-orig does - merge diff --git a/git-import-orig b/git-import-orig index 383c5967..54c359e5 100755 --- a/git-import-orig +++ b/git-import-orig @@ -25,7 +25,7 @@ import re import glob import subprocess import gbp.command_wrappers as gbpc -from gbp.deb_utils import parse_changelog, unpack_orig, NoChangelogError, has_epoch +from gbp.deb_utils import parse_changelog, unpack_orig, NoChangelogError, has_epoch, tar_toplevel from gbp.git_utils import (GitRepositoryError, GitRepository, build_tag, replace_source_tree) from gbp.config import GbpOptionParser from gbp.errors import GbpError @@ -177,13 +177,7 @@ on howto create it otherwise use --upstream-branch to specify it. unpack_orig(archive, tmpdir, options.filters) if options.verbose: print "Unpacked %s to '%s'" % (archive , tmpdir) - unpacked = glob.glob(tmpdir+'/*') - # archive has everything packed up in one subdir: - if len(unpacked) == 1: - orig_dir = unpacked[0] - # archive content not in a subdir - else: - orig_dir = tmpdir + orig_dir = tar_toplevel(tmpdir) try: cp = parse_changelog('debian/changelog') pristine_orig = symlink_orig(archive, cp['Source'], version) |