From d1708d6a4bea44c9935e0b26e7d3e3a209c3b4b1 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Fri, 13 Dec 2024 19:30:12 -0600 Subject: [PATCH] logic is better --- doRelease.go | 41 ++++++++++++++--------------------------- main.go | 34 ++-------------------------------- releaseBox.go | 4 ---- structs.go | 6 ++++++ 4 files changed, 22 insertions(+), 63 deletions(-) diff --git a/doRelease.go b/doRelease.go index 68af367..6713259 100644 --- a/doRelease.go +++ b/doRelease.go @@ -3,7 +3,6 @@ package main import ( "os" - "path/filepath" "strings" "time" @@ -227,18 +226,12 @@ func doPublishVersion() bool { docmd := []string{"go", "get", "-v", gopath + "@" + me.release.version.String()} log.Info("SHOULD RUN cmd HERE:", docmd) - testf := filepath.Join(me.forge.GetGoSrc(), "go.wit.com/apps/guireleaser", "go.sum") - if !shell.Exists(testf) { - pb := me.forge.Repos.FindByGoPath("go.wit.com/apps/guireleaser") - if pb != nil { - if err := pb.RunStrict([]string{"go-mod-clean"}); err != nil { - log.Info("go-mod-clean failed", err) - } - } - if !shell.Exists(testf) { - log.Info("go.sum missing", testf) - panic("redo go.sum") - } + if !me.startRepo.Exists("go.mod") { + log.Info("go.sum missing in", me.startRepo.GoPath) + log.Info("pick a different repo here") + log.Info("todo: error out earlier knowing this will upgrade") + log.Info("versions", me.startRepo.GetTargetVersion(), me.startRepo.GetMasterVersion()) + panic("redo go.sum") } if me.current.Status.IsPrivate() { // do not self update private repos @@ -248,23 +241,17 @@ func doPublishVersion() bool { // try to pull from google var result cmd.Status - if gopath == "go.wit.com/apps/guireleaser" { + if gopath == me.startRepo.GoPath { log.Info("CAN NOT SELF UPDATE. cmd =", docmd) log.Info("go get must be run from somewhere else other than guireleaser") log.Info("chdir to autotypist if it exists") - if shell.Exists("/home/jcarr/go/src/go.wit.com/apps/autotypist") { - os.Chdir("/home/jcarr/go/src/go.wit.com/apps/autotypist") - } else { - log.Info("need to chdir somewhere with go.sum & go.mod") - return false - } - // result = shell.PathRun("/home/jcarr/go/src/go.wit.com/apps/autotypist", docmd) - } else { - // publish go.mod & go.sum for use with go - os.Unsetenv("GO111MODULE") - log.Info("TRYING TO SELF UPDATE HERE. cmd =", docmd) - result = me.release.guireleaser.Status.Run(docmd) + os.Exit(-1) } + // publish go.mod & go.sum for use with go + os.Unsetenv("GO111MODULE") + log.Info("TRYING TO SELF UPDATE HERE. cmd =", docmd) + result = me.startRepo.Run(docmd) + if result.Error != nil { log.Info("SELF UPDATE FAILED. error =", result.Error) log.Info("SELF UPDATE FAILED. exit =", result.Exit) @@ -279,7 +266,7 @@ func doPublishVersion() bool { log.Info("SELF UPDATE FAILED") return false } - log.Info("SELF UPDATE OK. out =", result.Stdout) + log.Info("SELF UPDATE OK. out =", strings.Join(result.Stdout, "\n")) log.Info("SELF UPDATE WORKED") return true } diff --git a/main.go b/main.go index 126f5f6..6b6a74e 100644 --- a/main.go +++ b/main.go @@ -65,17 +65,6 @@ func main() { os.Exit(0) } - /* - // sanity check of things that might be around that mess - // up things later - // check to make sure we have a go.sum here - gosum := filepath.Join(homeDir, "go/src/go.wit.com/apps/guireleaser/go.sum") - if !shell.Exists(gosum) { - log.Info("go.sum must exist here") - os.Exit(0) - } - */ - log.Info("Creating the Release Window") // initialize the repo list window @@ -122,28 +111,9 @@ func main() { } } - // the repo from the command line - // var myrepo *repolist.RepoRow + me.startRepo = me.forge.Repos.FindByGoPath("go.wit.com/apps/helloworld") - // find myself. the guireleaser directory is used as a working scratchpad - // for running go commands that can mess up the go.* files - loop = me.repos.View.ReposSortByName() - for loop.Scan() { - repo := loop.Repo() - if repo.GoPath() == "go.wit.com/apps/guireleaser" { - if me.release.guireleaser == nil { - me.release.guireleaser = repo - } - } - log.Info("repolist.ReposSortByName() found", repo.GoPath()) - /* - if repo.GoPath() == myargs.Repo { - myrepo = repo - } - */ - } - - if me.release.guireleaser == nil { + if me.startRepo == nil { log.Info("Can not release if guireleaser was not found") os.Exit(0) } diff --git a/releaseBox.go b/releaseBox.go index cfde8ec..cfef2a2 100644 --- a/releaseBox.go +++ b/releaseBox.go @@ -34,10 +34,6 @@ type releaseStruct struct { sendVersionB *gui.Node checkSafeB *gui.Node whitelist map[string]*repolist.RepoRow - - // store myself here. use myself to - // do garbage go get tests and other potential junk - guireleaser *repolist.RepoRow } func (w *autoType) Disable() { diff --git a/structs.go b/structs.go index 6cc8b4e..54ae116 100644 --- a/structs.go +++ b/structs.go @@ -6,6 +6,7 @@ import ( "go.wit.com/lib/gadgets" "go.wit.com/lib/gui/repolist" "go.wit.com/lib/protobuf/forgepb" + "go.wit.com/lib/protobuf/gitpb" ) var me *autoType @@ -20,6 +21,11 @@ type autoType struct { reposgroup *gui.Node current *repolist.RepoRow + // this is the repo we are starting in + // make sure it never changes so go.mod and go.sum are always there + // 'go get' is called from here + startRepo *gitpb.Repo + // guireleaser window mainWindow *gui.Node mainBox *gui.Node