diff options
Diffstat (limited to 'doPublish.go')
| -rw-r--r-- | doPublish.go | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/doPublish.go b/doPublish.go new file mode 100644 index 0000000..ed38d5b --- /dev/null +++ b/doPublish.go @@ -0,0 +1,58 @@ +// Copyright 2017-2025 WIT.COM Inc. All rights reserved. +// Use of this source code is governed by the GPL 3.0 + +package main + +import ( + "fmt" + "os" + + "go.wit.com/lib/fhelp" + "go.wit.com/lib/gui/shell" + "go.wit.com/log" +) + +func doPublish() error { + initForge() + + saferepo := me.forge.Repos.FindByNamespace("go.wit.com/lib/xgb") // safe to run things here + if saferepo == nil { + return log.Errorf("need a safe place to run GO commands from") + } + os.Chdir(saferepo.FullPath) + + if os.Getenv("GUIRELEASE_REASON") == "" { + reason := fhelp.InputFromUser("set tag message:") + if reason == "" { + me.sh.BadExit("merge failed", fmt.Errorf("GUIRELEASE_REASON was blank")) + } + os.Setenv("GUIRELEASE_REASON", reason) + } + + var cmd []string + + cmd = []string{"forge", "merge", "--all"} + if _, err := shell.RunVerbose(cmd); err != nil { + me.sh.BadExit("merge failed", nil) + } + + cmd = []string{"forge", "merge", "check"} + if _, err := shell.RunRealtimeError(cmd); err != nil { + if _, err := shell.RunVerbose(cmd); err != nil { + me.sh.BadExit("merge failed", nil) + } + } + + if err := doInstall(); err != nil { + log.Info("doInstall() failed", err) + me.sh.BadExit("merge failed", nil) + } + + cmd = []string{"guireleaser", "--gui", "andlabs", "quick"} + if _, err := shell.RunRealtimeError(cmd); err != nil { + me.sh.BadExit("merge failed", nil) + } + + log.Info("PUBLISH WORKED") + return nil +} |
