From d76a1a55abecf66b37594fa0e7984273ef5059e7 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Thu, 27 Sep 2012 10:24:28 +0300 Subject: UpstreamSource/guess_version: detect more compression formats By utilizing the parse_archive_filename() function that detects e.g. "alias suffixes" such as 'tgz'. Signed-off-by: Markus Lehtonen --- gbp/pkg/__init__.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'gbp/pkg') diff --git a/gbp/pkg/__init__.py b/gbp/pkg/__init__.py index 52d3469..18ca812 100644 --- a/gbp/pkg/__init__.py +++ b/gbp/pkg/__init__.py @@ -352,6 +352,10 @@ class UpstreamSource(object): ('foo-bar', '0.2') >>> UpstreamSource('foo-bar_0.2.orig.tar.lzma').guess_version() ('foo-bar', '0.2') + >>> UpstreamSource('foo-bar-0.2.zip').guess_version() + ('foo-bar', '0.2') + >>> UpstreamSource('foo-bar-0.2.tlz').guess_version() + ('foo-bar', '0.2') @param extra_regex: additional regex to apply, needs a 'package' and a 'version' group @@ -360,20 +364,20 @@ class UpstreamSource(object): """ version_chars = r'[a-zA-Z\d\.\~\-\:\+]' if self.is_dir(): - extensions = '' + basename = os.path.basename(self.path) else: - extensions = r'\.tar\.(%s)' % "|".join(self.known_compressions()) + basename = parse_archive_filename(os.path.basename(self.path))[0] - version_filters = map ( lambda x: x % (version_chars, extensions), + version_filters = map ( lambda x: x % version_chars, ( # Debian upstream tarball: package_'.orig.tar.gz' - r'^(?P[a-z\d\.\+\-]+)_(?P%s+)\.orig%s', + r'^(?P[a-z\d\.\+\-]+)_(?P%s+)\.orig', # Upstream 'package-.tar.gz' # or directory 'package-': - r'^(?P[a-zA-Z\d\.\+\-]+)-(?P[0-9]%s*)%s')) + r'^(?P[a-zA-Z\d\.\+\-]+)-(?P[0-9]%s*)')) if extra_regex: version_filters = extra_regex + version_filters for filter in version_filters: - m = re.match(filter, os.path.basename(self.path)) + m = re.match(filter, basename) if m: return (m.group('package'), m.group('version')) -- cgit v1.2.3