Permalink
Browse files

hugolib: Ignore non-source files on partial rebuild

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 b5b6e81c0269abf9b0f4bc6a127744a25344e5c6
Showing with 14 additions and 2 deletions.
  1. +12 −0 hugolib/site.go
  2. +2 −2 source/filesystem.go
View
@@ -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.
@@ -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)
}
View
@@ -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
}
@@ -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 {

0 comments on commit b5b6e81

Please sign in to comment.