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)