summaryrefslogtreecommitdiff
path: root/init.go
diff options
context:
space:
mode:
Diffstat (limited to 'init.go')
-rw-r--r--init.go54
1 files changed, 27 insertions, 27 deletions
diff --git a/init.go b/init.go
index 04213fc..10f905b 100644
--- a/init.go
+++ b/init.go
@@ -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
}