From 6c7794d18d6a3c1d52428b4b828169c8b0349a5d Mon Sep 17 00:00:00 2001
From: Nils G <nils.gondermann@ruhr-uni-bochum.de>
Date: Fri, 10 Apr 2020 11:37:45 +0200
Subject: [PATCH] Added meta table which parses git commit and date

---
 controllers/default.py   |  2 +-
 models/c_meta.py         | 28 ++++++++++++++++++++++++++++
 views/default/index.html |  5 ++++-
 3 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 models/c_meta.py

diff --git a/controllers/default.py b/controllers/default.py
index 2096578..d971f34 100644
--- a/controllers/default.py
+++ b/controllers/default.py
@@ -1,4 +1,4 @@
 import random
 
 def index():
-    return dict(var=random.random())
+    return dict(var=random.random(), meta=db(db.Meta).select().first())
diff --git a/models/c_meta.py b/models/c_meta.py
new file mode 100644
index 0000000..2bd3f07
--- /dev/null
+++ b/models/c_meta.py
@@ -0,0 +1,28 @@
+import subprocess
+
+db.define_table(
+    'Meta',
+    Field('creation', 'datetime', default=request.now),
+    Field('git_commit', 'string'),
+    Field('git_date', 'string')
+)
+
+def getGitCommit(_record):
+    try:
+        commit = subprocess.check_output(["git", "rev-parse", "HEAD"], cwd=request.folder, encoding="utf-8")[:-1]
+    except:
+        commit = "Failed to get git commit"
+    return(commit)
+
+def getGitDate(_record):
+    try:
+        date = subprocess.check_output(["git", "log", "-1", "--format=%cd", "--date=iso8601"], cwd=request.folder, encoding="utf-8")[:-7]
+    except:
+        date = "Failed to get git date"
+    return(date)
+
+db.Meta.git_commit.compute = getGitCommit
+db.Meta.git_date.compute = getGitDate
+
+if db(db.Meta).count() == 0:
+    db.Meta.insert()
diff --git a/views/default/index.html b/views/default/index.html
index 9dbfe96..7888001 100644
--- a/views/default/index.html
+++ b/views/default/index.html
@@ -1,5 +1,8 @@
 <html>
 	<body>
-		This is a test {{=var}}
+		This is a test {{=var}}<br><br>
+        This is commit <b>{{=meta.git_commit[:10] if len(meta.git_commit) > 10 else meta.git_commit}}</b> from <b>{{=meta.git_date}}</b> show on
+        <a href="https://git.noc.ruhr-uni-bochum.de/studienprojekt-ss20/lynchburg-server/-/commit/{{=meta.git_commit}}">GitLab</a><br>
+        Database from: {{=meta.creation}}
 	</body>
 </html>
-- 
GitLab