Correct fix for --cleanDestinationDir flag

Fixes #4246
Fixes #4248
This commit is contained in:
Alexander Borsuk 2018-01-10 18:55:22 +03:00 committed by Bjørn Erik Pedersen
parent 1921a70ab1
commit 5235a5bf5e

View file

@ -561,26 +561,37 @@ func (c *commandeer) fullBuild(watches ...bool) error {
}() }()
} }
g.Go(func() error { copyStaticFunc := func() error {
cnt, err := c.copyStatic() cnt, err := c.copyStatic()
if err != nil { if err != nil {
return fmt.Errorf("Error copying static files: %s", err) return fmt.Errorf("Error copying static files: %s", err)
} }
langCount = cnt langCount = cnt
return nil return nil
}) }
buildSitesFunc := func() error {
g.Go(func() error {
if err := c.buildSites(); err != nil { if err := c.buildSites(); err != nil {
return fmt.Errorf("Error building site: %s", err) return fmt.Errorf("Error building site: %s", err)
} }
return nil return nil
}) }
// Do not copy static files and build sites in parallel if cleanDestinationDir is enabled.
// This flag deletes all static resources in /public folder that are missing in /static,
// and it does so at the end of copyStatic() call.
if c.Cfg.GetBool("cleanDestinationDir") {
if err := copyStaticFunc(); err != nil {
return err
}
if err := buildSitesFunc(); err != nil {
return err
}
} else {
g.Go(copyStaticFunc)
g.Go(buildSitesFunc)
if err := g.Wait(); err != nil { if err := g.Wait(); err != nil {
return err return err
} }
}
for _, s := range Hugo.Sites { for _, s := range Hugo.Sites {
s.ProcessingStats.Static = langCount[s.Language.Lang] s.ProcessingStats.Static = langCount[s.Language.Lang]