diff options
Diffstat (limited to 'init.go')
| -rw-r--r-- | init.go | 46 |
1 files changed, 31 insertions, 15 deletions
@@ -24,17 +24,26 @@ func Default(opts ...OptionFunc) *Engine { */ func Init() *Forge { + f := new(Forge) cfg := new(ForgeConfigs) err := config.ConfigLoad(cfg, "forge", "forge") + f.Config = cfg if err != nil { - log.Info("forge has not been configured yet filename =", cfg.Filename) - log.Info("go install go.wit.com/apps/forge@latest") - os.Exit(-1) + // fhelp.DumpENV("finit:") + f.setenv() + if !fhelp.QuestionUser("This is your first time using forge, use these default values?") { + os.Exit(-1) + } + f.Config.InitDefaults() + f.Config.ConfigSave() + f.initFromConfig() + f.Config.DumpENV() + return f } - f := initFromConfig(cfg) + f.initFromConfig() if f.Config.Mode == ForgeMode_MASTER { log.Printf("forge.Init() %s len()=%d\n", f.Config.Filename, f.Repos.Len()) - fhelp.DumpENV("finit:") + // fhelp.DumpENV("finit:") f.Config.DumpENV() } return f @@ -48,14 +57,14 @@ func InitByAppname(argname string) *Forge { log.Info("go install go.wit.com/apps/forge@latest") os.Exit(-1) } - f := initFromConfig(cfg) + f := new(Forge) + f.Config = cfg + f.initFromConfig() log.Printf("forge.Init() %s len()=%d\n", f.Config.Filename, f.Repos.Len()) return f } -func initFromConfig(cfg *ForgeConfigs) *Forge { - f := new(Forge) - f.Config = cfg +func (f *Forge) initFromConfig() { if f.configENV() { log.Info("ENV changed config. todo: save config here") f.Config.ConfigSave() @@ -80,9 +89,12 @@ func initFromConfig(cfg *ForgeConfigs) *Forge { f.Patchsets = NewPatchsets() // todo: play with these / determine good values based on user's machine - f.Config.RillX = 10 - f.Config.RillY = 20 - return f + if f.Config.RillX == 0 { + f.Config.RillX = 10 + } + if f.Config.RillY == 0 { + f.Config.RillY = 20 + } } func (f *Forge) SetConfigSave(b bool) { @@ -93,8 +105,9 @@ func (f *Forge) SetConfigSave(b bool) { func (f *Forge) Exit() { // log.Info("forge.configSave =", f.configSave) if f.Config.Mode == ForgeMode_MASTER { - fhelp.DumpENV("forge:") - f.Config.DumpENV() + // fhelp.DumpENV("forge:") + // f.Config.DumpENV() + // todo: tell the user to switch to NORMAL mode } f.ConfigSave() @@ -114,6 +127,7 @@ func (f *Forge) Exit() { // all initial ENV settings should be stored in the forge struct func (f *Forge) setenv() { f.once.Do(func() { + log.Info("doing setenv()") if err := fhelp.ConfigureENV(); err != nil { log.Info("forge ConfigureENV() failed", err) os.Exit(-1) @@ -128,9 +142,11 @@ func (f *Forge) setenv() { f.goWork = true } - f.Config.ReposPB = os.Getenv("FORGE_REPOPB") + f.Config.ReposPB = os.Getenv("FORGE_REPOSPB") + f.Config.ReposDir = os.Getenv("FORGE_REPOSDIR") f.Config.PatchDir = os.Getenv("FORGE_PATCHDIR") f.Config.ForgeURL = os.Getenv("FORGE_URL") + fhelp.DumpENV("setenv end()") }) } |
