summaryrefslogtreecommitdiff
path: root/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config.go')
-rw-r--r--config.go45
1 files changed, 28 insertions, 17 deletions
diff --git a/config.go b/config.go
index d86d05a..76b6973 100644
--- a/config.go
+++ b/config.go
@@ -5,6 +5,7 @@ package forgepb
import (
"errors"
+ "fmt"
"os"
"path/filepath"
@@ -64,24 +65,12 @@ func (c *ForgeConfigs) ConfigLoad() error {
// var err error
if c == nil {
// can't safely do c = new(ForgeConfig) if c is in a struct from the caller. notsure why
+ // TODO: recheck this. it might work now? It's probably still a bad idea(?)
return errors.New("It's not safe to run ConfigLoad() on a nil")
}
- // this lets the user hand edit the config
- if data, err := loadFile("forge.text"); err == nil {
- if data != nil {
- // this means the forge.text file exists and was read
- if len(data) != 0 {
- if err = c.UnmarshalTEXT(data); err != nil {
- log.Info("forge.ConfigLoad()", len(c.ForgeConfigs), "entries in ~/.config/forge")
- // forge.pb file was broken. save on load right away
- log.Info("attempting forge.ConfigSave()")
- c.ConfigSave()
- return nil
- }
- // todo: error out if the file is empty?
- }
- }
+ if err := c.loadText(); err == nil {
+ return nil
}
// forge.text doesn't exist. try forge.json
@@ -93,7 +82,7 @@ func (c *ForgeConfigs) ConfigLoad() error {
if len(data) != 0 {
if err = c.UnmarshalJSON(data); err == nil {
log.Info("forge.ConfigLoad()", len(c.ForgeConfigs), "entries in ~/.config/forge")
- // forge.pb file was broken. save on load right away
+ // forge.text file was broken. save on load right away
log.Info("attempting forge.ConfigSave()")
c.ConfigSave()
return nil
@@ -109,8 +98,30 @@ func (c *ForgeConfigs) ConfigLoad() error {
}
// first time user. make a template config file
- c.sampleConfig()
+ log.Info("crap")
+ // c.sampleConfig()
+
+ return nil
+}
+func (c *ForgeConfigs) loadText() error {
+ // this lets the user hand edit the config
+ data, err := loadFile("forge.text")
+ if err != nil {
+ return err
+ }
+ if data == nil {
+ return fmt.Errorf("forge.text data was nil")
+ }
+ if len(data) == 0 {
+ return fmt.Errorf("forge.text was empty")
+ }
+
+ // attempt to marshal forge.text
+ if err := c.UnmarshalTEXT(data); err != nil {
+ return err
+ }
+ log.Info("forge.ConfigLoad()", len(c.ForgeConfigs), "entries in ~/.config/forge")
return nil
}