func main() { singularity.InitLog(false) err := envdecode.Decode(&conf) if err != nil { log.Fatal(err) } err = singularity.CreateOutputDirs(singularity.TargetDir) if err != nil { log.Fatal(err) } err = serve(conf.Port) if err != nil { log.Fatal(err) } }
func main() { start := time.Now() defer func() { log.Infof("Built site in %v.", time.Now().Sub(start)) }() err := envdecode.Decode(&conf) if err != nil { log.Fatal(err) } singularity.InitLog(conf.Verbose) // This is where we stored "versioned" assets like compiled JS and CSS. // These assets have a release number that we can increment and by // extension quickly invalidate. versionedAssetsDir := path.Join(singularity.TargetDir, "assets", singularity.Release) err = singularity.CreateOutputDirs(singularity.TargetDir) if err != nil { log.Fatal(err) } var tasks []*pool.Task tasks = append(tasks, pool.NewTask(func() error { return linkFonts() })) tasks = append(tasks, pool.NewTask(func() error { return linkImages() })) tasks = append(tasks, pool.NewTask(func() error { return assets.CompileJavascripts( path.Join(singularity.AssetsDir, "javascripts"), path.Join(versionedAssetsDir, "app.js")) })) tasks = append(tasks, pool.NewTask(func() error { return assets.CompileStylesheets( path.Join(singularity.AssetsDir, "stylesheets"), path.Join(versionedAssetsDir, "app.css")) })) articleTasks, err := tasksForArticles() if err != nil { log.Fatal(err) } tasks = append(tasks, articleTasks...) pageTasks, err := tasksForPages() if err != nil { log.Fatal(err) } tasks = append(tasks, pageTasks...) if !runTasks(tasks) { os.Exit(1) } }