logic is better
This commit is contained in:
parent
6f39827fb9
commit
d1708d6a4b
41
doRelease.go
41
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
|
||||
}
|
||||
|
|
34
main.go
34
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)
|
||||
}
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue