diff options
author | Guido Günther <agx@sigxcpu.org> | 2016-11-16 14:12:20 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2016-11-16 14:12:20 +0100 |
commit | 25a5d679daf6ca90e03fe3bede787396fc630687 (patch) | |
tree | ce19ac804ba07cc67b075bbe16b1ce39a7b0e0d1 | |
parent | d360a6d92d744762f9f13555ed03726b6d4ba937 (diff) |
DebianGitRepository: split out version mangling
Git-Dch: Ignore
-rw-r--r-- | gbp/deb/git.py | 18 |
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): |