import os
import sys
+import subprocess
+from .settings import conf
+from .settings import sf
from django.db import models
+__git_describe__ = 'git describe --always --tags --dirty'
+__git_commit__ = 'git rev-parse --verify HEAD'
+
class ToolsGit(models.Model):
id = models.AutoField(primary_key=True)
git_describe = models.TextField()
git_commit = models.TextField()
class Meta:
db_table = "toolsgit"
+ def get():
+ """Return ToolsGit object of current git. If no entry is in database, new
+ object is created.
+ """
+ ds = subprocess.check_output('cd ' + sf(conf.linux_sources) + ' && '
+ + __git_describe__, shell=True).decode(sys.getdefaultencoding()).strip()
+ cm = subprocess.check_output('cd ' + sf(conf.linux_sources) + ' && '
+ + __git_commit__, shell=True).decode(sys.getdefaultencoding()).strip()
+ lg = LinuxGit.objects.filter(git_describe=ds, git_commit=cm)
+ if not lg:
+ nlg = LinuxGit()
+ nlg.git_commit = cm
+ nlg.git_describe = ds
+ return nlg
+ else:
+ return lg[0]
class LinuxGit(models.Model):
id = models.AutoField(primary_key=True)
git_commit = models.TextField()
class Meta:
db_table = "linuxgit"
+ def get():
+ """Return LinuxGIt object of current linux tree git. If no entry is in
+ database, new object is created.
+ """
+ ds = subprocess.check_output('cd ' + sf(conf.linux_sources) + ' && '
+ + __git_describe__, shell=True).decode(sys.getdefaultencoding()).strip()
+ cm = subprocess.check_output('cd ' + sf(conf.linux_sources) + ' && '
+ + __git_commit__, shell=True).decode(sys.getdefaultencoding()).strip()
+ lg = LinuxGit.objects.filter(git_describe=ds, git_commit=cm)
+ if not lg:
+ nlg = LinuxGit()
+ nlg.git_commit = cm
+ nlg.git_describe = ds
+ return nlg
+ else:
+ return lg[0]
+
class Configurations(models.Model):
id = models.AutoField(primary_key=True)