aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2016-11-16 14:12:20 +0100
committerGuido Günther <agx@sigxcpu.org>2016-11-16 14:12:20 +0100
commit25a5d679daf6ca90e03fe3bede787396fc630687 (patch)
treece19ac804ba07cc67b075bbe16b1ce39a7b0e0d1
parentd360a6d92d744762f9f13555ed03726b6d4ba937 (diff)
DebianGitRepository: split out version mangling
Git-Dch: Ignore
-rw-r--r--gbp/deb/git.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/gbp/deb/git.py b/gbp/deb/git.py
index fea919d9..418d3b35 100644
--- a/gbp/deb/git.py
+++ b/gbp/deb/git.py
@@ -161,12 +161,22 @@ class DebianGitRepository(GitRepository):
>>> DebianGitRepository.version_to_tag("%(version%-%\%)s", "0-1.2.3")
'0%1.2.3'
"""
+ f, v = cls._mangle_version(format, version)
+ return format_str(f, dict(version=cls._sanitize_version(v),
+ hversion=cls._sanitize_version(v).replace('.', '-')))
+
+ @classmethod
+ def _mangle_version(cls, format, version):
+ """
+ Basic version mangling to replce single characters
+ """
r = re.search(cls.version_mangle_re, format)
if r:
- format = re.sub(cls.version_mangle_re, "%(version)s", format)
- version = version.replace(r.group('M'), r.group('R').replace('\%', '%'))
- return format_str(format, dict(version=DebianGitRepository._sanitize_version(version),
- hversion=DebianGitRepository._sanitize_version(version).replace('.', '-')))
+ f = re.sub(cls.version_mangle_re, "%(version)s", format)
+ v = version.replace(r.group('M'), r.group('R').replace('\%', '%'))
+ return f, v
+ else:
+ return format, version
@staticmethod
def _sanitize_version(version):