Skip to content
Snippets Groups Projects
Commit 251cfb9d authored by Stefano Di Frischia's avatar Stefano Di Frischia
Browse files

L2SS-630: refactor lofar_version

parent 90fc794c
No related branches found
No related tags found
1 merge request!296Resolve L2SS-630 "Refactor functions graded c"
......@@ -72,14 +72,10 @@ def get_version(repo: git.Repo = None) -> str:
commit = repo.commit()
filtered_tags = [tag.name for tag in repo.tags if reg.search(tag.name)]
# Order tags from newest to oldest
tags = {tag.commit: tag for tag in reversed(repo.tags) if tag.name in filtered_tags}
tags = _order_tags(repo, filtered_tags)
# Find closest tag for commit
closest_tag = type('',(object,),{"name": 'v0.0.0'})()
for item in commit.iter_items(repo, commit):
if item.type == 'commit' and item in tags:
closest_tag = tags[item]
break
closest_tag = _find_closest_tag(commit, repo, tags)
if commit in tags:
# a tag = production ready
......@@ -94,6 +90,19 @@ def get_version(repo: git.Repo = None) -> str:
return "{}{}".format(commit_str, ".dirty" if repo.is_dirty() else "")
def _order_tags(repo, filtered_tags):
""" Helper function to order tags from newest to oldest """
return {tag.commit: tag for tag in reversed(repo.tags) if tag.name in filtered_tags}
def _find_closest_tag(commit, repo, tags):
""" Helper function to find closest tag for commit """
closest_tag = type('',(object,),{"name": 'v0.0.0'})()
for item in commit.iter_items(repo, commit):
if item.type == 'commit' and item in tags:
closest_tag = tags[item]
break
return closest_tag
# at least cache the current repo version immediately
try:
_ = get_version()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment