From 05760bbb382082c36116b1c1c24c1d5a1e2ebebc Mon Sep 17 00:00:00 2001 From: Tai Groot Date: Sun, 19 Jun 2022 15:40:13 -0600 Subject: [PATCH] testing using gitgraph with imported data --- bin/import.go | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++ go.mod | 12 ++++++++--- go.sum | 8 ++++---- 3 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 bin/import.go diff --git a/bin/import.go b/bin/import.go new file mode 100644 index 0000000..eb442c7 --- /dev/null +++ b/bin/import.go @@ -0,0 +1,55 @@ +package main + +import ( + "log" + "time" + + git "github.com/go-git/go-git/v5" + "github.com/go-git/go-git/v5/plumbing/object" + "github.com/taigrr/gico" + gterm "github.com/taigrr/gitgraph/term" +) + +type DataSet map[time.Time]gico.WorkDay + +func main() { + + r, err := git.PlainOpen("../.git") + if err != nil { + log.Printf("%v\n", err) + } + ref, err := r.Head() + cIter, err := r.Log(&git.LogOptions{From: ref.Hash()}) + + // year := time.Now().Year() + // yearStart := time.Time{} + // yearStart.AddDate(year, 0, 0) + data := make(DataSet) + err = cIter.ForEach(func(c *object.Commit) error { + ts := c.Author.When + commit := gico.Commit{Author: c.Author.Name, Message: c.Message, TimeStamp: ts} + roundedTS := ts.Round(time.Hour * 24) + wd, ok := data[roundedTS] + if !ok { + wd = gico.WorkDay{} + wd.Commits = []gico.Commit{} + } + wd.Commits = append(wd.Commits, commit) + wd.Count++ + wd.Day = roundedTS + data[roundedTS] = wd + return nil + }) + freq := [366]int{} + for k, v := range data { + if k.Year() != time.Now().Year() { + continue + } + // this is equivalent to adding len(commits) to the freq total, but + // it's a stub for later when we do more here + for range v.Commits { + freq[k.YearDay()-1]++ + } + } + gterm.GetYearUnicode(freq[:]) +} diff --git a/go.mod b/go.mod index d18c600..56d4641 100644 --- a/go.mod +++ b/go.mod @@ -2,16 +2,21 @@ module github.com/taigrr/gico go 1.18 +replace github.com/taigrr/go-colorpallettes => ../go-colorpallettes + replace github.com/charmbracelet/bubbles => github.com/taigrr/bubbles v0.10.5 replace github.com/muesli/termenv => github.com/taigrr/termenv v0.11.2 replace github.com/charmbracelet/lipgloss => github.com/taigrr/lipgloss v0.5.1 +replace github.com/taigrr/gitgraph => ../gitgraph + require ( github.com/charmbracelet/bubbletea v0.20.0 github.com/charmbracelet/lipgloss v0.5.0 github.com/go-git/go-git/v5 v5.4.2 + github.com/taigrr/gitgraph v0.0.0-00010101000000-000000000000 ) require ( @@ -31,13 +36,14 @@ require ( github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/muesli/ansi v0.0.0-20211031195517-c9f0611b6c70 // indirect github.com/muesli/reflow v0.3.0 // indirect - github.com/muesli/termenv v0.11.1-0.20220212125758-44cd13922739 // indirect + github.com/muesli/termenv v0.11.1 // indirect github.com/rivo/uniseg v0.2.0 // indirect github.com/sergi/go-diff v1.1.0 // indirect + github.com/taigrr/go-colorpallettes v0.0.0-00010101000000-000000000000 // indirect github.com/xanzy/ssh-agent v0.3.0 // indirect golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b // indirect - golang.org/x/net v0.0.0-20210326060303-6b1517762897 // indirect + golang.org/x/net v0.0.0-20211118161319-6a13c67c3ce4 // indirect golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a // indirect - golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 // indirect + golang.org/x/term v0.0.0-20210422114643-f5beecf764ed // indirect gopkg.in/warnings.v0 v0.1.2 // indirect ) diff --git a/go.sum b/go.sum index 5132839..380ef39 100644 --- a/go.sum +++ b/go.sum @@ -95,8 +95,9 @@ golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b h1:7mWr3k41Qtv8XlltBkDkl8LoP3mpSgBW8BUoxtEdbXg= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210326060303-6b1517762897 h1:KrsHThm5nFk34YtATK1LsThyGhGbGe1olrte/HInHvs= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= +golang.org/x/net v0.0.0-20211118161319-6a13c67c3ce4 h1:DZshvxDdVoeKIbudAdFEKi+f70l51luSy/7b76ibTY0= +golang.org/x/net v0.0.0-20211118161319-6a13c67c3ce4/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -110,11 +111,10 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210422114643-f5beecf764ed h1:Ei4bQjjpYUsS4efOUz+5Nz++IVkHk87n2zBA0NxBWc0= golang.org/x/term v0.0.0-20210422114643-f5beecf764ed/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20220411215600-e5f449aeb171 h1:EH1Deb8WZJ0xc0WK//leUHXcX9aLE5SymusoTmMZye8= -golang.org/x/term v0.0.0-20220411215600-e5f449aeb171/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=