github.com/ernestokarim/closurer@v0.0.0-20130119214741-f245d086c750/hooks/pre-compile.go (about) 1 package hooks 2 3 import ( 4 "os" 5 "sync" 6 7 "github.com/ernestokarim/closurer/app" 8 "github.com/ernestokarim/closurer/cache" 9 "github.com/ernestokarim/closurer/config" 10 ) 11 12 var loadCacheOnce sync.Once 13 14 // Called before each compilation task. It load the caches 15 // and reload the confs if needed. 16 func PreCompile() error { 17 if err := config.Load(); err != nil { 18 return err 19 } 20 21 conf := config.Current() 22 if err := os.MkdirAll(conf.Build, 0755); err != nil { 23 return app.Error(err) 24 } 25 26 var err error 27 loadCacheOnce.Do(func() { 28 err = cache.Load() 29 }) 30 31 return err 32 }