all repos — glog @ main

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}