aboutsummaryrefslogtreecommitdiffstats
path: root/bn_django/git_browse/models.py
diff options
context:
space:
mode:
authorbnewbold <bnewbold@manus.(none)>2007-02-20 02:21:25 -0800
committerbnewbold <bnewbold@manus.(none)>2007-02-20 02:21:25 -0800
commit3d203c153301d4dd9c3285e7dea86ee09eb3b0c5 (patch)
tree47bf5bb676c5f25def0a4a37852c1783961a03e6 /bn_django/git_browse/models.py
parent566473abe7aac915429a633e996bdb719f1a308b (diff)
downloadbnewnet-3d203c153301d4dd9c3285e7dea86ee09eb3b0c5.tar.gz
bnewnet-3d203c153301d4dd9c3285e7dea86ee09eb3b0c5.zip
mid-progress, work on git-browser
fan is dying, more work to do though! TODO: seperate style for git_browser, use "block.super"
Diffstat (limited to 'bn_django/git_browse/models.py')
-rw-r--r--bn_django/git_browse/models.py25
1 files changed, 25 insertions, 0 deletions
diff --git a/bn_django/git_browse/models.py b/bn_django/git_browse/models.py
index 765fe02..be097f8 100644
--- a/bn_django/git_browse/models.py
+++ b/bn_django/git_browse/models.py
@@ -5,6 +5,13 @@ try:
GITBROWSE_BASE = settings.GITBROWSE_BASE
except AttributeError:
GITBROWSE_BASE='/home'
+if GITBROWSE_BASE[-1] != '/':
+ GITBROWSE_BASE += '/'
+
+try:
+ GITCOMMAND = settings.GITCOMMAND
+except AttributeError:
+ GITCOMMAND='git'
try:
ADMIN_URL = settings.ADMIN_URL
@@ -34,6 +41,24 @@ class Repository(models.Model):
def get_admin_url(self):
return "%s/code/repository/%s/" % (ADMIN_URL, self.slug)
+ def scan(self):
+ import os
+
+ GITPREFIX = 'cd ' + GITBROWSE_BASE + self.slug + '; ' + GITCOMMAND \
+ + ' --git-dir=' + GITBROWSE_BASE + self.slug + '/.git '
+ heads = dict()
+ for h in os.listdir(GITBROWSE_BASE + self.slug + '/.git/refs/heads/'):
+ f = open(GITBROWSE_BASE + self.slug + '/.git/refs/heads/' + h,'r')
+ heads[h] = f.readline()
+ f.close
+ tags = dict()
+ for t in os.listdir(GITBROWSE_BASE + self.slug + '/.git/refs/tags/'):
+ f = open(GITBROWSE_BASE + self.slug + '/.git/refs/tags/' + t,'r')
+ tags[t] = f.readline()
+ f.close
+
+ return (GITPREFIX, heads, tags)
+
class Tree(models.Model):
repo = models.ForeignKey(Repository)
mode = models.CharField("file mode/permissions", blank=False,maxlength=4)