aboutsummaryrefslogtreecommitdiff
path: root/models/repo2.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo2.go')
-rw-r--r--models/repo2.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/models/repo2.go b/models/repo2.go
index 0c17a583..b31244b4 100644
--- a/models/repo2.go
+++ b/models/repo2.go
@@ -5,6 +5,7 @@
package models
import (
+ "fmt"
"path"
"strings"
"time"
@@ -22,12 +23,25 @@ type Commit struct {
Message string
}
+var (
+ ErrRepoFileNotLoaded = fmt.Errorf("repo file not loaded")
+)
+
type RepoFile struct {
*git.TreeEntry
Path string
Message string
Created time.Time
Size int64
+ Repo *git.Repository
+}
+
+func (file *RepoFile) LookupBlob() (*git.Blob, error) {
+ if file.Repo == nil {
+ return nil, ErrRepoFileNotLoaded
+ }
+
+ return file.Repo.LookupBlob(file.Id)
}
func GetBranches(userName, reposName string) ([]string, error) {
@@ -80,6 +94,7 @@ func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile,
lastCommit.Message(),
lastCommit.Committer.When,
size,
+ repo,
})
case git.FileModeTree:
repodirs = append(repodirs, &RepoFile{
@@ -88,6 +103,7 @@ func GetReposFiles(userName, reposName, branchName, rpath string) ([]*RepoFile,
lastCommit.Message(),
lastCommit.Committer.When,
size,
+ repo,
})
}
}