From 4f24f6972ab5d1519d0d7305c866af4dfff36b3b Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Mon, 4 Nov 2024 08:13:37 -0600 Subject: [PATCH] make output for guireleaser Signed-off-by: Jeff Carr --- human.go | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/human.go b/human.go index 0c22ae8..ab2544b 100644 --- a/human.go +++ b/human.go @@ -4,9 +4,11 @@ package repolist import ( "fmt" + "net/http" "time" "go.wit.com/lib/gui/shell" + "go.wit.com/log" ) // makes a human readable thing for standard out. @@ -23,3 +25,90 @@ func (r *RepoRow) StandardHeader() string { header := fmt.Sprintf("%-35s %5s %-10s %-10s %-10s %-10s %-15s", r.Name(), shell.FormatDuration(dur), lastTag, master, devel, user, r.State()) return header } + +// makes a human readable thing for standard out. +func (r *RepoRow) StandardReleaseHeader() string { + lastTag := r.LastTag() + tag := r.Status.NewestTag() + gitAge, _ := tag.GetDate() + dur := time.Since(gitAge) + + master := r.Status.GetMasterVersion() + target := r.Status.GetTargetVersion() + + header := fmt.Sprintf("%-35s %5s %-10s %-10s %-10s %-15s %-15s", + r.Name(), + shell.FormatDuration(dur), + lastTag, + master, + target, + r.GoState(), + r.State()) + return header +} + +// send stuff to the socket and stdout +func msg(w http.ResponseWriter, s string) { + log.Info(s) + fmt.Fprintln(w, s) +} + +func (v *RepoList) PrintReport(w http.ResponseWriter, readonly string, onlydirty string, perfect string) { + var count int + + loop := v.ReposSortByName() + for loop.Scan() { + repo := loop.Repo() + + count += 1 + header := repo.StandardHeader() + if onlydirty == "true" { + if repo.CheckDirty() { + msg(w, header+"") + } + continue + } + + if repo.ReadOnly() { + if readonly == "true" { + msg(w, header+"readonly") + } + continue + } + if repo.State() == "PERFECT" { + if perfect == "false" { + continue + } + } + if repo.State() != "merge to main" { + msg(w, header+"") + continue + } + if repo.CheckDirty() { + msg(w, header+"") + continue + } + msg(w, header+"") + } + msg(w, fmt.Sprintf("EVERYTHING WORKED repo count = %d", count)) +} + +func (v *RepoList) PrintReleaseReport(w http.ResponseWriter, readonly string, perfect string) { + var count int + + loop := v.ReposSortByName() + for loop.Scan() { + repo := loop.Repo() + + if repo.ReadOnly() && (readonly == "true") { + continue + } + if (repo.State() == "PERFECT") && (perfect == "true") { + continue + } + count += 1 + header := repo.StandardReleaseHeader() + msg(w, header) + } + msg(w, fmt.Sprintf("total repo count = %d", count)) +}