aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2011-10-16 16:07:19 +0200
committerGuido Günther <agx@sigxcpu.org>2011-10-16 19:16:13 +0200
commit351aed961f97b96dd63bbe23b482abf005b58b8f (patch)
treee0a7b2bc5cf8d88a83dc7967af8d17574a280c42
parentefe9220041ae67ba81d0cb1f761364ef16134ac7 (diff)
Move guess_upstream_version into UpstreamSource
-rw-r--r--gbp/deb.py96
-rwxr-xr-xgit-import-orig4
2 files changed, 50 insertions, 50 deletions
diff --git a/gbp/deb.py b/gbp/deb.py
index fab0a634..7e8d846b 100644
--- a/gbp/deb.py
+++ b/gbp/deb.py
@@ -1,6 +1,6 @@
# vim: set fileencoding=utf-8 :
#
-# (C) 2006,2007 Guido Guenther <agx@sigxcpu.org>
+# (C) 2006,2007,2011 Guido Günther <agx@sigxcpu.org>
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
@@ -236,6 +236,53 @@ class UpstreamSource(object):
def known_compressions():
return [ args[1][-1] for args in compressor_opts.items() ]
+ def guess_version(self, extra_regex=r''):
+ """
+ Guess the package name and version from the filename of an upstream
+ archive.
+
+ @param extra_regex: additional regex to apply, needs a 'package' and a
+ 'version' group
+ @return tuple: (package name, version) or None.
+
+ >>> UpstreamSource('foo-bar_0.2.orig.tar.gz').guess_version()
+ ('foo-bar', '0.2')
+ >>> UpstreamSource('foo-Bar_0.2.orig.tar.gz').guess_version()
+ >>> UpstreamSource('git-bar-0.2.tar.gz').guess_version()
+ ('git-bar', '0.2')
+ >>> UpstreamSource('git-bar-0.2-rc1.tar.gz').guess_version()
+ ('git-bar', '0.2-rc1')
+ >>> UpstreamSource('git-bar-0.2:~-rc1.tar.gz').guess_version()
+ ('git-bar', '0.2:~-rc1')
+ >>> UpstreamSource('git-Bar-0A2d:rc1.tar.bz2').guess_version()
+ ('git-Bar', '0A2d:rc1')
+ >>> UpstreamSource('git-1.tar.bz2').guess_version()
+ ('git', '1')
+ >>> UpstreamSource('kvm_87+dfsg.orig.tar.gz').guess_version()
+ ('kvm', '87+dfsg')
+ >>> UpstreamSource('foo-Bar_0.2.orig.tar.gz').guess_version()
+ >>> UpstreamSource('foo-Bar-a.b.tar.gz').guess_version()
+ >>> UpstreamSource('foo-bar_0.2.orig.tar.xz').guess_version()
+ ('foo-bar', '0.2')
+ >>> UpstreamSource('foo-bar_0.2.orig.tar.lzma').guess_version()
+ ('foo-bar', '0.2')
+ """
+ version_chars = r'[a-zA-Z\d\.\~\-\:\+]'
+ extensions = r'\.tar\.(%s)' % "|".join(self.known_compressions())
+
+ version_filters = map ( lambda x: x % (version_chars, extensions),
+ ( # Debian package_<version>.orig.tar.gz:
+ r'^(?P<package>[a-z\d\.\+\-]+)_(?P<version>%s+)\.orig%s',
+ # Upstream package-<version>.tar.gz:
+ r'^(?P<package>[a-zA-Z\d\.\+\-]+)-(?P<version>[0-9]%s*)%s'))
+ if extra_regex:
+ version_filters = extra_regex + version_filters
+
+ for filter in version_filters:
+ m = re.match(filter, os.path.basename(self.path))
+ if m:
+ return (m.group('package'), m.group('version'))
+
class DscFile(object):
"""Keeps all needed data read from a dscfile"""
@@ -561,53 +608,6 @@ def get_arch():
return arch
-def guess_upstream_version(archive, extra_regex=r''):
- """
- guess the package name and version from the filename of an upstgream
- archive. Returns a tuple with package name and version, or None.
- @param archive: filename to guess to version for
- @param extra_regex: additional regex to apply, needs a 'package' and a
- 'version' group
-
- >>> guess_upstream_version('foo-bar_0.2.orig.tar.gz')
- ('foo-bar', '0.2')
- >>> guess_upstream_version('foo-Bar_0.2.orig.tar.gz')
- >>> guess_upstream_version('git-bar-0.2.tar.gz')
- ('git-bar', '0.2')
- >>> guess_upstream_version('git-bar-0.2-rc1.tar.gz')
- ('git-bar', '0.2-rc1')
- >>> guess_upstream_version('git-bar-0.2:~-rc1.tar.gz')
- ('git-bar', '0.2:~-rc1')
- >>> guess_upstream_version('git-Bar-0A2d:rc1.tar.bz2')
- ('git-Bar', '0A2d:rc1')
- >>> guess_upstream_version('git-1.tar.bz2')
- ('git', '1')
- >>> guess_upstream_version('kvm_87+dfsg.orig.tar.gz')
- ('kvm', '87+dfsg')
- >>> guess_upstream_version('foo-Bar_0.2.orig.tar.gz')
- >>> guess_upstream_version('foo-Bar-a.b.tar.gz')
- >>> guess_upstream_version('foo-bar_0.2.orig.tar.xz')
- ('foo-bar', '0.2')
- >>> guess_upstream_version('foo-bar_0.2.orig.tar.lzma')
- ('foo-bar', '0.2')
- """
- version_chars = r'[a-zA-Z\d\.\~\-\:\+]'
- extensions = r'\.tar\.(%s)' % "|".join(UpstreamSource.known_compressions())
-
- version_filters = map ( lambda x: x % (version_chars, extensions),
- ( # Debian package_<version>.orig.tar.gz:
- r'^(?P<package>[a-z\d\.\+\-]+)_(?P<version>%s+)\.orig%s',
- # Upstream package-<version>.tar.gz:
- r'^(?P<package>[a-zA-Z\d\.\+\-]+)-(?P<version>[0-9]%s*)%s'))
- if extra_regex:
- version_filters = extra_regex + version_filters
-
- for filter in version_filters:
- m = re.match(filter, os.path.basename(archive))
- if m:
- return (m.group('package'), m.group('version'))
-
-
def compare_versions(version1, version2):
"""compares to Debian versionnumbers suitable for sort()"""
return DpkgCompareVersions()(version1, version2)
diff --git a/git-import-orig b/git-import-orig
index 6c70905c..cd0127dd 100755
--- a/git-import-orig
+++ b/git-import-orig
@@ -28,7 +28,7 @@ import tempfile
import gbp.command_wrappers as gbpc
from gbp.deb import (parse_changelog, UpstreamSource,
NoChangelogError, has_epoch,
- guess_upstream_version, do_uscan,
+ do_uscan,
parse_changelog_repo, is_valid_packagename,
packagename_msg, is_valid_upstreamversion,
upstreamversion_msg)
@@ -115,7 +115,7 @@ def upstream_import_commit_msg(options, version):
def detect_name_and_version(repo, source, options):
# Guess defaults for the package name and version from the
# original tarball.
- (guessed_package, guessed_version) = guess_upstream_version(source.path) or ('', '')
+ (guessed_package, guessed_version) = source.guess_version() or ('', '')
# Try to find the source package name
try: