From 497b58cb4976d29bc485ed3402320e233d9d976e Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 31 Jan 2024 08:47:08 -0600 Subject: [PATCH] write out versions for go.wit.com Signed-off-by: Jeff Carr --- globalBuildOptions.go | 2 +- listWindow.go | 71 ++++++++++++++++++++++++++++++++++++++++++- repolist.go | 29 ++---------------- 3 files changed, 73 insertions(+), 29 deletions(-) diff --git a/globalBuildOptions.go b/globalBuildOptions.go index 0641d08..4abdd07 100644 --- a/globalBuildOptions.go +++ b/globalBuildOptions.go @@ -116,7 +116,7 @@ func globalBuildOptions(box *gui.Node) { newBranch.AddText("devel") newBranch.AddText(usr.Username) newBranch.SetText(usr.Username) - newBranch.Custom = func () { + newBranch.Custom = func() { setBranchB.SetLabel("set current branches to " + newBranch.String()) } } diff --git a/listWindow.go b/listWindow.go index 876aab0..7aba7d7 100644 --- a/listWindow.go +++ b/listWindow.go @@ -2,11 +2,14 @@ package main import ( + "fmt" "io/ioutil" "net/http" "os" "path/filepath" + "strconv" "strings" + "time" "go.wit.com/gui" "go.wit.com/log" @@ -53,7 +56,9 @@ func listWindow() { lw.Draw() box := lw.Box() group := box.NewGroup("list") - group.NewButton("blah", func() {}) + group.NewButton("make new go version list", func() { + dumpVersions() + }) var lines []string var curs *section @@ -230,3 +235,67 @@ func dumpURL(url string) []string { return strings.Split(string(bodyBytes), "\n") } + +func dumpVersions() { + f, _ := os.OpenFile("/tmp/go.wit.com.versions", os.O_WRONLY|os.O_CREATE, 0600) + defer f.Close() + for _, sec := range allsections { + for _, wrepo := range sec.witRepos { + r, ok := me.allrepos[wrepo.path.String()] + if ok { + _, out := r.status.RunCmd([]string{"git", "log", "-1", "--format=%at", r.lastTag.String()}) + out = strings.TrimSpace(out) + + // Convert the string to an integer + gitTagTimestampInt, err := strconv.ParseInt(out, 10, 64) + if err != nil { + fmt.Println("Error converting timestamp:", err) + return + } + + // Parse the Unix timestamp into a time.Time object + gitTagDate := time.Unix(gitTagTimestampInt, 0) + + // Get the current time + currentTime := time.Now() + + // Calculate the duration between the git tag date and the current time + duration := currentTime.Sub(gitTagDate) + + // s := fmt.Sprint(duration) + // fmt.Println("Duration since the git tag date:", s) + + // fmt.Println("Default formatting:", duration.String()) + // fmt.Println("Custom formatting:", formatDuration(duration)) + log.Warn("found:", wrepo.path.String(), r.lastTag.String(), out, formatDuration(duration)) + fmt.Fprintln(f, wrepo.path.String(), r.lastTag.String(), out) + } + //wrepo.path.Show() + } + } +} + +func formatDuration(d time.Duration) string { + seconds := int(d.Seconds()) % 60 + minutes := int(d.Minutes()) % 60 + hours := int(d.Hours()) % 24 + days := int(d.Hours()) / 24 + + result := "" + if days > 0 { + result += fmt.Sprintf("%dd ", days) + return result + } + if hours > 0 { + result += fmt.Sprintf("%dh ", hours) + return result + } + if minutes > 0 { + result += fmt.Sprintf("%dm ", minutes) + return result + } + if seconds > 0 { + result += fmt.Sprintf("%ds", seconds) + } + return result +} diff --git a/repolist.go b/repolist.go index 229fa0d..34af776 100644 --- a/repolist.go +++ b/repolist.go @@ -61,7 +61,6 @@ func (r *repo) Hide() { r.userVersion.Hide() r.dirtyLabel.Hide() - r.goSumStatus.Hide() r.statusButton.Hide() r.hidden = true } @@ -76,7 +75,6 @@ func (r *repo) Show() { r.userVersion.Show() r.dirtyLabel.Show() - r.goSumStatus.Show() r.statusButton.Show() r.hidden = false } @@ -113,7 +111,6 @@ func addRepo(grid *gui.Node, path string, master string, devel string, user stri newRepo.userVersion = grid.NewLabel("").SetProgName("userVersion") newRepo.dirtyLabel = grid.NewLabel("") - newRepo.goSumStatus = grid.NewLabel("?") newRepo.vLabel = grid.NewLabel("").SetProgName("current") @@ -131,12 +128,7 @@ func addRepo(grid *gui.Node, path string, master string, devel string, user stri newRepo.status.SetMainWorkingName(master) newRepo.status.SetDevelWorkingName(devel) newRepo.status.SetUserWorkingName(user) - /* - newRepo.status.SetDevelBranchName(devel) - newRepo.status.SetUserBranchName(user) - newRepo.status.Update() - newRepo.newScan() - */ + me.allrepos[path] = newRepo } @@ -155,7 +147,7 @@ func repolistWindow() { repoAllButtons(reposbox) reposgroup = reposbox.NewGroup("go repositories (read from ~/.config/myrepolist)") - reposgrid = reposgroup.NewGrid("test", 9, 1) + reposgrid = reposgroup.NewGrid("test", 8, 1) reposgrid.NewLabel("") // path goes here @@ -166,7 +158,6 @@ func repolistWindow() { reposgrid.NewLabel("user version") reposgrid.NewLabel("Status") - reposgrid.NewLabel("go.sum") reposgrid.NewLabel("Current Version").SetProgName("Current Version") @@ -276,20 +267,4 @@ func repoAllButtons(box *gui.Node) { repo.newScan() } }) - - /* - grid1.NewButton("rescan all", func() { - for _, repo := range me.allrepos { - repo.newScan() - } - }) - - grid1.NewButton("repostatus.ListAll()", func() { - repostatus.ListAll() - }) - - grid1.NewButton("repostatus.ScanGoSrc()", func() { - repostatus.ScanGoSrc() - }) - */ }