summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-11-04 08:13:37 -0600
committerJeff Carr <[email protected]>2024-11-04 08:13:37 -0600
commit4f24f6972ab5d1519d0d7305c866af4dfff36b3b (patch)
tree4690eb25fa85fd3d97552efa42edd1636222cd9d
parentedfdb48ddf85eb414a1a264f724a30eb8bef91d3 (diff)
make output for guireleaser
Signed-off-by: Jeff Carr <[email protected]>
-rw-r--r--human.go89
1 files changed, 89 insertions, 0 deletions
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))
+}