summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJun Wang <junbill.wang@samsung.com>2016-03-09 18:44:48 +0800
committerJun Wang <junbill.wang@samsung.com>2016-03-09 18:44:48 +0800
commitb8b2060a6f941eb1124f313d306d3fff7269aa10 (patch)
tree0e3d17e481110cc71c23ebcb1a4740872eea5e76
parentd20f0d6411c9bf719b2838445ed3f7b886acef15 (diff)
downloadgit-buildpackage-b8b2060a6f941eb1124f313d306d3fff7269aa10.tar.gz
git-buildpackage-b8b2060a6f941eb1124f313d306d3fff7269aa10.tar.bz2
git-buildpackage-b8b2060a6f941eb1124f313d306d3fff7269aa10.zip
add compose_version_str function
Change-Id: Id1944627b2ec5cf450c978f77002c72d46206572
-rw-r--r--gbp/rpm/__init__.py31
1 files changed, 30 insertions, 1 deletions
diff --git a/gbp/rpm/__init__.py b/gbp/rpm/__init__.py
index 4c5c22bf..d47fb302 100644
--- a/gbp/rpm/__init__.py
+++ b/gbp/rpm/__init__.py
@@ -901,5 +901,34 @@ def string_to_int(val_str):
else:
return int(val_str)
-
+def compose_version_str(evr):
+ """
+ Compose a full version string from individual "version components",
+ i.e. epoch, version and release
+
+ @param evr: dict of version components
+ @type evr: C{dict} of C{str}
+ @return: full version
+ @rtype: C{str}
+
+ >>> compose_version_str({'epoch': '', 'upstreamversion': '1.0'})
+ '1.0'
+ >>> compose_version_str({'epoch': '2', 'upstreamversion': '1.0', 'release': None})
+ '2:1.0'
+ >>> compose_version_str({'epoch': None, 'upstreamversion': '1', 'release': '0'})
+ '1-0'
+ >>> compose_version_str({'epoch': '2', 'upstreamversion': '1.0', 'release': '2.3'})
+ '2:1.0-2.3'
+ >>> compose_version_str({'epoch': '2', 'upstreamversion': '', 'release': '2.3'})
+ """
+ if 'upstreamversion' in evr and evr['upstreamversion']:
+ version = ""
+ if 'epoch' in evr and evr['epoch']:
+ version += "%s:" % evr['epoch']
+ version += evr['upstreamversion']
+ if 'release' in evr and evr['release']:
+ version += "-%s" % evr['release']
+ if version:
+ return version
+ return None
# vim:et:ts=4:sw=4:et:sts=4:ai:set list listchars=tab\:»·,trail\:·: