summaryrefslogtreecommitdiff
path: root/doPublish.go
diff options
context:
space:
mode:
Diffstat (limited to 'doPublish.go')
-rw-r--r--doPublish.go58
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
+}