diff options
Diffstat (limited to 'models/repo2.go')
-rw-r--r-- | models/repo2.go | 16 |
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, }) } } |