summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-10-03 08:00:38 -0500
committerJeff Carr <[email protected]>2025-10-03 08:00:38 -0500
commitac08950abc98ada7e906b19cf48a64c021d52524 (patch)
tree3f1b50bb59e78b6af8b3efaa427bcf53fa970e28
parent50b2a5e3b95638d76e30a7720a4eaac8d443a600 (diff)
fixes ConfigSave() for new users
-rw-r--r--build.go14
-rw-r--r--config.go40
2 files changed, 33 insertions, 21 deletions
diff --git a/build.go b/build.go
index a234065..6042b62 100644
--- a/build.go
+++ b/build.go
@@ -127,13 +127,17 @@ func (f *Forge) doBuild(repo *gitpb.Repo, userFlags []string, goWhat string) err
ldflags += "-X main.GUIVERSION=" + version + "" // todo: git this from the filesystem
cmd = append(cmd, "-ldflags", ldflags)
- testenv := os.Getenv("GO111MODULE")
- if testenv == "off" {
- log.Info("GO111MODULE=off", "f.goWork =", f.IsGoWork())
+ var buildnotes string
+ if os.Getenv("GO111MODULE") == "off" {
+ buildnotes = "GO111MODULE=off"
} else {
- log.Info("GO111MODULE=", testenv, "f.goWork =", f.IsGoWork())
+ buildnotes = "GO111MODULE"
}
- log.Infof("Run: %s %v\n", repo.FullPath, cmd)
+ if f.IsGoWork() {
+ buildnotes += " go.work=true"
+ }
+ log.Infof("Run: %s %s %v\n", buildnotes, repo.FullPath, cmd)
+
result := repo.RunRealtime(cmd)
if result.Exit != 0 {
// build failed
diff --git a/config.go b/config.go
index 0820a1e..88142bc 100644
--- a/config.go
+++ b/config.go
@@ -16,27 +16,27 @@ import (
// returns err1 || err2
func (f *Forge) ConfigSave() error {
- var err error
-
if f.Config == nil {
return log.Errorf("forge.Config == nil")
}
- if config.HasChanged("forge") {
- // only let forge save the config files (?)
- if prep.AppName() == "forge" || prep.AppName() == "guireleaser" {
- log.Info("Okay, this is", prep.AppName())
- } else {
- log.Info("This is not forge")
- return log.Errorf("Only forge can save the config files")
- }
+ if !config.HasChanged("forge") {
+ return log.Errorf("didn't save. no changes were made")
+ }
+
+ // only let forge edit & save the config files
+ // inforce this in lib config?
+ if !(prep.AppName() == "forge" || prep.AppName() == "guireleaser") {
+ log.Info("This is not forge")
+ return log.Errorf("Only forge can save the forge config file")
+ }
+ log.Info("Okay, this is", prep.AppName())
- if e := f.Config.ConfigSave(); e != nil {
- log.Info("forge.Config.ConfigSave() error", e)
- err = e
- }
+ if err := f.Config.ConfigSave(); err != nil {
+ log.Info("forge.Config.ConfigSave() error", err)
+ return err
}
- return err
+ return nil
}
func (f *Forge) SaveRepos() error {
@@ -92,6 +92,10 @@ func loadStdConfig() *ForgeConfigs {
cfg := NewForgeConfigs()
err := config.ConfigLoad(cfg, "forge", "forge")
+ if cfg.Filename == "" {
+ panic("wtf filename blank")
+ }
+
if err == nil {
return cfg
}
@@ -124,9 +128,13 @@ func loadStdConfig() *ForgeConfigs {
cfg.ForgeURL = "http://forge.wit.com/"
cfg.DumpENV()
+ config.SetChanged("forge", true)
if !fhelp.QuestionUser("This is your first time using forge, use these default values?") {
os.Exit(-1)
}
- cfg.ConfigSave()
+ if err := cfg.ConfigSave(); err != nil {
+ log.Info("config save error:", err)
+ os.Exit(-1)
+ }
return cfg
}