changedPaths := struct {
changedFiles []*paths.Path
+ addedFiles []*paths.Path
changedDirs []*paths.Path
deleted []*paths.Path
}{}
changedPaths.deleted = append(changedPaths.deleted, pss...)
} else if ev.isChangedDir {
changedPaths.changedDirs = append(changedPaths.changedDirs, pss...)
+ } else if ev.added {
+ changedPaths.addedFiles = append(changedPaths.addedFiles, pss...)
} else {
changedPaths.changedFiles = append(changedPaths.changedFiles, pss...)
}
}
// Find the most specific identity possible.
- handleChange := func(pathInfo *paths.Path, delete, isDir bool) {
+ handleChange := func(pathInfo *paths.Path, delete, add, isDir bool) {
switch pathInfo.Component() {
case files.ComponentFolderContent:
logger.Println("Source changed", pathInfo.Path())
}
}
- addedOrChangedContent = append(addedOrChangedContent, pathChange{p: pathInfo, structural: delete, isDir: isDir})
+ structural := delete
+ structural = structural || (add && pathInfo.IsLeafBundle())
+
+ addedOrChangedContent = append(addedOrChangedContent, pathChange{p: pathInfo, structural: structural, isDir: isDir})
case files.ComponentFolderLayouts:
tmplChanged = true
}
changedPaths.deleted = removeDuplicatePaths(changedPaths.deleted)
+ changedPaths.addedFiles = removeDuplicatePaths(changedPaths.addedFiles)
changedPaths.changedFiles = removeDuplicatePaths(changedPaths.changedFiles)
h.Log.Trace(logg.StringFunc(func() string {
sb.WriteString("path: " + p.Path())
sb.WriteString("\n")
}
+ sb.WriteString("Added:\n")
+ for _, p := range changedPaths.addedFiles {
+ sb.WriteString("path: " + p.Path())
+ sb.WriteString("\n")
+ }
sb.WriteString("Changed:\n")
for _, p := range changedPaths.changedFiles {
sb.WriteString("path: " + p.Path())
}
for _, deleted := range changedPaths.deleted {
- handleChange(deleted, true, false)
+ handleChange(deleted, true, false, false)
+ }
+
+ for _, id := range changedPaths.addedFiles {
+ handleChange(id, false, true, false)
}
for _, id := range changedPaths.changedFiles {
- handleChange(id, false, false)
+ handleChange(id, false, false, false)
}
for _, id := range changedPaths.changedDirs {
- handleChange(id, false, true)
+ handleChange(id, false, false, true)
}
for _, id := range changes {
b.AssertRenderCountContent(0)
}
+func TestRebuildAddingALeaffBundleIssue13925(t *testing.T) {
+ t.Parallel()
+
+ b := TestRunning(t, rebuildFilesSimple)
+
+ b.AddFiles(
+ "content/mysection/mysectionbundle2/index.md", "",
+ "content/mysection/mysectionbundle2/mysectionbundletext.txt", "mysectionbundletext.txt").Build()
+
+ b.AssertFileContent("public/mysection/mysectionbundle2/index.html", "Len Resources: 1|")
+
+ b.AddFiles(
+ "content/mynewsection/_index.md", "",
+ "content/mynewsection/mynewsectiontext.txt", "foo").Build()
+
+ b.AssertFileContent("public/mynewsection/index.html", "Len Resources: 1|")
+}
+
func TestRebuildEditTextFileInShortcode(t *testing.T) {
t.Parallel()
for range 3 {