diff options
Diffstat (limited to 'init.go')
| -rw-r--r-- | init.go | 54 |
1 files changed, 27 insertions, 27 deletions
@@ -3,6 +3,7 @@ package forgepb import ( + "errors" "os" "os/user" "path/filepath" @@ -25,36 +26,43 @@ func Default(opts ...OptionFunc) *Engine { */ func Init() (*Forge, error) { - cfg, err := loadStdConfig() // will also handle new users - return initFromConfig(cfg), err + f := new(Forge) + f.Config = NewForgeConfigs() + err := f.Config.loadConfig() + err = errors.Join(err, f.postInit()) + return f, err } -func InitByAppname(argname string) *Forge { - cfg := NewForgeConfigs() - err := cfg.loadConfig() - if err != nil { - log.Info("ConfigLoad() error. make a default config here?", err) - } - return initFromConfig(cfg) +func InitByAppname(argname string) (*Forge, error) { + f := new(Forge) + f.Config = NewForgeConfigs() + err := f.Config.loadConfig() + err = errors.Join(err, f.postInit()) + return f, err } -func InitByFullpath(filename string) *Forge { +func InitByFullpath(filename string) (*Forge, error) { + f := new(Forge) cfg := NewForgeConfigs() err := config.LoadFile(cfg, filename) + f.Config = cfg + + err = errors.Join(err, f.postInit()) if err != nil { - log.Info("forge load config err", err) + log.Info("forge.InitByFullpath() error:", filename, err) } - return initFromConfig(cfg) + return f, err } -func initFromConfig(cfg *ForgeConfigs) *Forge { - if cfg == nil { - log.Info("forge config was == nil") +// saves the config if there have been changes +func (f *Forge) Close() error { + if err := f.Save(); err != nil { + return err } - f := new(Forge) - f.Config = cfg - f.Config.loadConfig() + return nil +} +func (f *Forge) postInit() error { // always define if ENV.Get("username") == "" { usr, _ := user.Current() @@ -105,13 +113,5 @@ func initFromConfig(cfg *ForgeConfigs) *Forge { log.Printf("forge failed to load %s file with len(%d) repos err=(%v)\n", f.Repos.Filename, f.Repos.Len(), err) panic("failed to load repos.pb") } - return f -} - -// saves the config if there have been changes -func (f *Forge) Close() error { - if err := f.Save(); err != nil { - return err - } - return nil + return err } |
