package forgepb import ( "os" "go.wit.com/lib/protobuf/gitpb" "go.wit.com/lib/protobuf/zoopb" "go.wit.com/log" ) func Init() *Forge { f := new(Forge) // TODO: rethink this but it works for now gosrc := os.Getenv("FORGE_GOSRC") if gosrc == "" { // already set. ignore init() goSrcDir, err := f.findGoSrc() if err != nil { log.Warn("forge init() findGoSrc()", err) } os.Setenv("FORGE_GOSRC", goSrcDir) } f.goSrc = os.Getenv("FORGE_GOSRC") // cache.go has Do() // f.initOnce.Do(f.initWork) f.Config = new(ForgeConfigs) // load the ~/.config/forge/ config if err := f.Config.ConfigLoad(); err != nil { log.Warn("forgepb.ConfigLoad() failed", err) os.Exit(-1) } f.Repos = new(gitpb.Repos) f.Repos.ConfigLoad() f.Machine = new(zoopb.Machine) if err := f.Machine.ConfigLoad(); err != nil { log.Warn("zoopb.ConfigLoad() failed", err) os.Exit(-1) } f.Machine.InitWit() log.Info("forge pre scan ", f.Repos.Len(), "repos in", f.goSrc) f.ScanGoSrc() log.Info("forge.Init() found", f.Repos.Len(), "repos in", f.goSrc) return f }