summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gbp/pkg/__init__.py13
-rw-r--r--tests/06_test_upstream_source.py1
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"):