summaryrefslogtreecommitdiff
path: root/init.go
diff options
context:
space:
mode:
Diffstat (limited to 'init.go')
-rw-r--r--init.go46
1 files changed, 31 insertions, 15 deletions
diff --git a/init.go b/init.go
index 6ade4ab..9243e9d 100644
--- a/init.go
+++ b/init.go
@@ -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()")
})
}