summaryrefslogtreecommitdiff
path: root/internal/processor/processor.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/processor/processor.go')
-rw-r--r--internal/processor/processor.go11
1 files changed, 10 insertions, 1 deletions
diff --git a/internal/processor/processor.go b/internal/processor/processor.go
index 0bbc28e..9620e62 100644
--- a/internal/processor/processor.go
+++ b/internal/processor/processor.go
@@ -169,8 +169,17 @@ func commitPlan(plan postPlan, postsDir string, now time.Time) error {
return err
}
+ // Deduplicate extras in case the same file is referenced multiple times.
+ seen := make(map[string]bool, len(inboxExtras))
for _, path := range inboxExtras {
- _ = os.Remove(path)
+ if seen[path] {
+ continue
+ }
+ seen[path] = true
+ if err := os.Remove(path); err != nil {
+ _ = os.RemoveAll(postDir)
+ return fmt.Errorf("remove inbox extra %s: %w", path, err)
+ }
}
return os.Remove(plan.srcPath)