|
|
@ -2,8 +2,16 @@ package main |
|
|
|
|
|
|
|
import ( |
|
|
|
"log" |
|
|
|
"io/ioutil" |
|
|
|
"path/filepath" |
|
|
|
) |
|
|
|
|
|
|
|
type RepoCommits struct { |
|
|
|
Config configCollect |
|
|
|
CommitDesc map[string]string |
|
|
|
CommitContent map[string]Commit |
|
|
|
} |
|
|
|
|
|
|
|
type Commit struct { |
|
|
|
CommitId string `json:"commit_id"` |
|
|
|
RootId string `json:"root_id"` |
|
|
@ -22,6 +30,45 @@ type Commit struct { |
|
|
|
} |
|
|
|
|
|
|
|
func cmdCommit(config configCollect) { |
|
|
|
rexists := repoExistsIn(config.Storage, config.RepoId) |
|
|
|
if !rexists["commits"] { log.Fatal("No commits folder found for repo ",config.RepoId) } |
|
|
|
rc := NewRepoCommits(config) |
|
|
|
rc.CollectDescs() |
|
|
|
rc.PrintDescs() |
|
|
|
} |
|
|
|
|
|
|
|
func NewRepoCommits (config configCollect) *RepoCommits { |
|
|
|
rc := new(RepoCommits) |
|
|
|
rc.Config = config |
|
|
|
rc.CommitDesc = make(map[string]string) |
|
|
|
rc.CommitContent = make(map[string]Commit) |
|
|
|
return rc |
|
|
|
} |
|
|
|
|
|
|
|
func (rc* RepoCommits) CollectDescs() { |
|
|
|
baseFolder := filepath.Join(rc.Config.Storage, "commits", rc.Config.RepoId) |
|
|
|
log.Println(baseFolder) |
|
|
|
layer1, err := ioutil.ReadDir(baseFolder) |
|
|
|
if err != nil { log.Fatal(err) } |
|
|
|
for _, l1 := range layer1 { |
|
|
|
intFolder := filepath.Join(baseFolder, l1.Name()) |
|
|
|
layer2, err := ioutil.ReadDir(intFolder) |
|
|
|
if err != nil { log.Fatal(err) } |
|
|
|
for _, l2 := range layer2 { |
|
|
|
commitId := l1.Name() + l2.Name() |
|
|
|
commitPath := filepath.Join(intFolder, l2.Name()) |
|
|
|
rc.CommitDesc[commitId] = commitPath |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func (rc* RepoCommits) PrintDescs() { |
|
|
|
limit := 10 |
|
|
|
for id, path := range rc.CommitDesc { |
|
|
|
log.Println(id, path) |
|
|
|
limit = limit - 1 |
|
|
|
if limit < 0 { |
|
|
|
log.Println("Too many commits, output has been truncated") |
|
|
|
break |
|
|
|
} |
|
|
|
} |
|
|
|
log.Println("Repo", rc.Config.RepoId, "contains", len(rc.CommitDesc), "commits") |
|
|
|
} |
|
|
|