Mercurial > repos > dcouvin > resfinder4
diff resfinder/cge/out/util/generator.py @ 0:55051a9bc58d draft default tip
Uploaded
author | dcouvin |
---|---|
date | Mon, 10 Jan 2022 20:06:07 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/resfinder/cge/out/util/generator.py Mon Jan 10 20:06:07 2022 +0000 @@ -0,0 +1,42 @@ +#!/usr/bin/env python3 + +from git import Repo +from git.exc import InvalidGitRepositoryError +from datetime import datetime, timezone + +from ..result import Result + + +class Generator(): + """ """ + + @staticmethod + def init_software_result(name, gitdir): + """""" + version, commit = Generator.get_version_commit(gitdir) + date = datetime.now(timezone.utc).date().isoformat() + + result_dict = { + "type": "software_result", + "software_name": name, + "software_version": version, + "software_commit": commit, + "run_date": date, + "key": "{}-{}".format(name, version) + } + return Result(**result_dict) + + @staticmethod + def get_version_commit(gitdir): + try: + repo = Repo(gitdir) + except InvalidGitRepositoryError: + return ("unknown", "unknown") + + com2tag = {} + for tag in repo.tags: + com2tag[tag.commit.hexsha] = str(tag) + + version = com2tag.get(repo.commit().hexsha, repo.commit().hexsha[:7]) + + return (version, repo.commit().hexsha)