main.go (view raw)
1package main
2
3import (
4 "flag"
5 "fmt"
6
7 "github.com/charmbracelet/log"
8
9 "github.com/go-git/go-git/v5"
10 "github.com/go-git/go-git/v5/plumbing/object"
11)
12
13func displayCommitLog(c *object.Commit) {
14 style := getStyle()
15 fmt.Printf("%s %s", style.date.Render(c.Author.When.Format(DATE_FORMAT)), c.Message)
16}
17
18func main() {
19 url := flag.String("url", "", "URL of the targeted git repository with logs")
20 path := flag.String("path", ".", "Path for the local git clone")
21 flag.Parse()
22 log.Debug("Use " + *url + " cloned in " + *path)
23
24 repo, err := getRepo(*url, *path)
25 CheckIfError(err)
26 ref, err := repo.Head()
27 CheckIfError(err)
28
29 cIter, err := repo.Log(&git.LogOptions{From: ref.Hash()})
30 CheckIfError(err)
31
32 err = cIter.ForEach(func(c *object.Commit) error {
33 displayCommitLog(c)
34 return nil
35 })
36 CheckIfError(err)
37}