diff options
author | bnewbold <bnewbold@manus.(none)> | 2007-02-20 02:21:25 -0800 |
---|---|---|
committer | bnewbold <bnewbold@manus.(none)> | 2007-02-20 02:21:25 -0800 |
commit | 3d203c153301d4dd9c3285e7dea86ee09eb3b0c5 (patch) | |
tree | 47bf5bb676c5f25def0a4a37852c1783961a03e6 /bn_django/git_browse/models.py | |
parent | 566473abe7aac915429a633e996bdb719f1a308b (diff) | |
download | bnewnet-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.py | 25 |
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) |