diff options
-rw-r--r-- | gbp/pkg/__init__.py | 13 | ||||
-rw-r--r-- | tests/06_test_upstream_source.py | 1 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gbp/pkg/__init__.py b/gbp/pkg/__init__.py index 540c22c..36f7099 100644 --- a/gbp/pkg/__init__.py +++ b/gbp/pkg/__init__.py @@ -265,6 +265,9 @@ class UpstreamSource(object): Guess the package name and version from the filename of an upstream archive. + @param extra_regex: extra regular expression to check + @type extra_regex: raw C{string} + >>> UpstreamSource('foo-bar_0.2.orig.tar.gz').guess_version() ('foo-bar', '0.2') >>> UpstreamSource('foo-Bar_0.2.orig.tar.gz').guess_version() @@ -293,12 +296,16 @@ class UpstreamSource(object): @rtype: tuple """ version_chars = r'[a-zA-Z\d\.\~\-\:\+]' - extensions = r'\.tar\.(%s)' % "|".join(self.known_compressions()) + if self.is_dir(): + extensions = '' + else: + extensions = r'\.tar\.(%s)' % "|".join(self.known_compressions()) version_filters = map ( lambda x: x % (version_chars, extensions), - ( # Debian package_<version>.orig.tar.gz: + ( # Debian upstream tarball: package_'<version>.orig.tar.gz' r'^(?P<package>[a-z\d\.\+\-]+)_(?P<version>%s+)\.orig%s', - # Upstream package-<version>.tar.gz: + # Upstream 'package-<version>.tar.gz' + # or directory 'package-<version>': r'^(?P<package>[a-zA-Z\d\.\+\-]+)-(?P<version>[0-9]%s*)%s')) if extra_regex: version_filters = extra_regex + version_filters diff --git a/tests/06_test_upstream_source.py b/tests/06_test_upstream_source.py index f6c0a44..2ea94cd 100644 --- a/tests/06_test_upstream_source.py +++ b/tests/06_test_upstream_source.py @@ -24,6 +24,7 @@ class TestDir(unittest.TestCase): self.assertEqual(source.is_orig(), False) self.assertEqual(source.path, self.upstream_dir) self.assertEqual(source.unpacked, self.upstream_dir) + self.assertEqual(source.guess_version(), ('test', '1.0')) def tearDown(self): if not os.getenv("GBP_TESTS_NOCLEAN"): |