Skip to content

Commit

Permalink
hugolib: Ignore non-source files on partial rebuild
Browse files Browse the repository at this point in the history
Partial rebuild does not have the same logic as normal rebuild on
selecting which file to build. This change makes it possible to
share the file select logic between two kinds of build.

Fix #3325.
  • Loading branch information
xofyarg authored and bep committed Apr 22, 2017
1 parent 90d3fbf commit b5b6e81
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
12 changes: 12 additions & 0 deletions hugolib/site.go
Expand Up @@ -728,6 +728,9 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) {
go pageConverter(pageChan, convertResults, wg2)
}

sp := source.NewSourceSpec(s.Cfg, s.Fs)
fs := sp.NewFilesystem("")

for _, ev := range sourceChanged {
// The incrementalReadCollator below will also make changes to the site's pages,
// so we do this first to prevent races.
Expand All @@ -750,6 +753,15 @@ func (s *Site) reProcess(events []fsnotify.Event) (whatChanged, error) {
}
}

// ignore files shouldn't be proceed
if fi, err := s.Fs.Source.Stat(ev.Name); err != nil {
continue
} else {
if ok, err := fs.ShouldRead(ev.Name, fi); err != nil || !ok {
continue
}
}

sourceReallyChanged = append(sourceReallyChanged, ev)
}

Expand Down
4 changes: 2 additions & 2 deletions source/filesystem.go
Expand Up @@ -90,7 +90,7 @@ func (f *Filesystem) captureFiles() {
return nil
}

b, err := f.shouldRead(filePath, fi)
b, err := f.ShouldRead(filePath, fi)
if err != nil {
return err
}
Expand Down Expand Up @@ -118,7 +118,7 @@ func (f *Filesystem) captureFiles() {

}

func (f *Filesystem) shouldRead(filePath string, fi os.FileInfo) (bool, error) {
func (f *Filesystem) ShouldRead(filePath string, fi os.FileInfo) (bool, error) {
if fi.Mode()&os.ModeSymlink == os.ModeSymlink {
link, err := filepath.EvalSymlinks(filePath)
if err != nil {
Expand Down

0 comments on commit b5b6e81

Please sign in to comment.