finally a proper use for sync.Once
This commit is contained in:
parent
98cc06ab8f
commit
d981b93728
43
init.go
43
init.go
|
@ -23,9 +23,6 @@ func Default(opts ...OptionFunc) *Engine {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// todo: use initOnce
|
|
||||||
// cache.go has Do()
|
|
||||||
// f.initOnce.Do(f.initWork)
|
|
||||||
func Init() *Forge {
|
func Init() *Forge {
|
||||||
f := InitPB()
|
f := InitPB()
|
||||||
|
|
||||||
|
@ -162,25 +159,27 @@ func (f *Forge) RawInitPB() {
|
||||||
// try to NOT use the ENV settings anywhere but here
|
// try to NOT use the ENV settings anywhere but here
|
||||||
// all initial ENV settings should be stored in the forge struct
|
// all initial ENV settings should be stored in the forge struct
|
||||||
func (f *Forge) setenv() {
|
func (f *Forge) setenv() {
|
||||||
if err := fhelp.ConfigureENV(); err != nil {
|
f.once.Do(func() {
|
||||||
log.Info("forge ConfigureENV() failed", err)
|
if err := fhelp.ConfigureENV(); err != nil {
|
||||||
os.Exit(-1)
|
log.Info("forge ConfigureENV() failed", err)
|
||||||
}
|
os.Exit(-1)
|
||||||
f.configDir = os.Getenv("FORGE_CONFIG")
|
}
|
||||||
f.goSrc = os.Getenv("FORGE_GOSRC")
|
f.configDir = os.Getenv("FORGE_CONFIG")
|
||||||
f.repoPB = os.Getenv("FORGE_REPOPB")
|
f.goSrc = os.Getenv("FORGE_GOSRC")
|
||||||
f.forgeURL = os.Getenv("FORGE_URL")
|
f.repoPB = os.Getenv("FORGE_REPOPB")
|
||||||
f.patchDir = os.Getenv("FORGE_PATCHDIR")
|
f.forgeURL = os.Getenv("FORGE_URL")
|
||||||
if os.Getenv("FORGE_GOWORK") == "true" {
|
f.patchDir = os.Getenv("FORGE_PATCHDIR")
|
||||||
f.goWork = true
|
if os.Getenv("FORGE_GOWORK") == "true" {
|
||||||
}
|
f.goWork = true
|
||||||
log.Printf("FORGE_CONFIG = %s\n", f.configDir)
|
}
|
||||||
log.Printf("FORGE_GOSRC = %s\n", f.goSrc)
|
log.Printf("FORGE_CONFIG = %s\n", f.configDir)
|
||||||
log.Printf("FORGE_GOWORK = %v\n", f.goWork)
|
log.Printf("FORGE_GOSRC = %s\n", f.goSrc)
|
||||||
log.Printf("FORGE_REPOPB = %s\n", f.repoPB)
|
log.Printf("FORGE_GOWORK = %v\n", f.goWork)
|
||||||
log.Printf("FORGE_URL = %s\n", f.forgeURL)
|
log.Printf("FORGE_REPOPB = %s\n", f.repoPB)
|
||||||
log.Printf("FORGE_PATCHDIR = %s\n", f.patchDir)
|
log.Printf("FORGE_URL = %s\n", f.forgeURL)
|
||||||
log.Printf("HOSTNAME = %s\n", os.Getenv("HOSTNAME"))
|
log.Printf("FORGE_PATCHDIR = %s\n", f.patchDir)
|
||||||
|
log.Printf("HOSTNAME = %s\n", os.Getenv("HOSTNAME"))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (f *Forge) GetForgeURL() string {
|
func (f *Forge) GetForgeURL() string {
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
// maybe an interface someday?
|
// maybe an interface someday?
|
||||||
type Forge struct {
|
type Forge struct {
|
||||||
// one-time initialized data
|
// one-time initialized data
|
||||||
initOnce sync.Once
|
once sync.Once
|
||||||
initErr error // init error, if any
|
initErr error // init error, if any
|
||||||
goSrc string // the path to go/src
|
goSrc string // the path to go/src
|
||||||
repoPB string // the path to the repos.pb cache file
|
repoPB string // the path to the repos.pb cache file
|
||||||
|
|
Loading…
Reference in New Issue