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  }