summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config.go')
-rw-r--r--config.go37
1 files changed, 23 insertions, 14 deletions
diff --git a/config.go b/config.go
index 46d7f65..18dfdf7 100644
--- a/config.go
+++ b/config.go
@@ -111,18 +111,17 @@ func (cfg *ForgeConfigs) DumpPB() {
}
*/
-func LoadStdConfig() *ForgeConfigs {
+func LoadStdConfig() (*ForgeConfigs, error) {
cfg := NewForgeConfigs()
err := config.ConfigLoad(cfg, "forge", "forge")
if cfg.Filename == "" {
- panic("wtf filename blank")
- }
-
- if err == nil {
- return cfg
+ panic("lib/config broken. filename is blank")
}
+ // todo: do something here with this error?
+ // right now, handled in forge
+ // todo: move the code from forge here
if errors.Is(err, os.ErrNotExist) {
log.Info("no files existed err=", err)
} else if errors.Is(err, config.ErrEmpty) {
@@ -133,8 +132,13 @@ func LoadStdConfig() *ForgeConfigs {
log.Info("some other bad problem err=", err)
}
- // this is probably the users first time
- // TODO: check if ./config/forge exists, then something else went wrong...
+ return cfg, nil
+}
+
+func MakeDefaultConfig() (*ForgeConfigs, error) {
+ cfg := NewForgeConfigs()
+ // Get fullpath to ~/.config/forge/forge.text
+ cfg.Filename = config.GetConfigFilename("forge", "forge")
usr, _ := user.Current()
cfg.Username = usr.Username
@@ -152,17 +156,22 @@ func LoadStdConfig() *ForgeConfigs {
cfg.ReposDir = filepath.Join(homeDir, "go/src") // todo: check working directory
os.MkdirAll(cfg.ReposDir, 0755)
+ // try new idea using lib/config
+ config.Set("Username", usr.Username)
+ config.Set("HomeDir", cfgdir)
+ config.Set("ReposPB", filepath.Join(cfgdir, "repos.pb"))
+ config.Set("PatchPB", filepath.Join(cfgdir, "patches.pb"))
+ config.Set("ForgeURL", "https://forge.grid.wit.com/")
+ config.Set("ReposDir", filepath.Join(homeDir, "go/src"))
+
cfg.addSampleConfigs()
cfg.DumpENV()
config.SetChanged("forge", true)
- // if !fhelp.QuestionUser("This is your first time using forge, use these default values?") {
- // os.Exit(-1)
- // }
- if err := cfg.ConfigSave(); err != nil {
+ var err error
+ if err = cfg.ConfigSave(); err != nil {
log.Info("config save error:", err)
- os.Exit(-1)
}
- return cfg
+ return cfg, err
}
// first time user. add go.wit.com as an example