diff options
Diffstat (limited to 'internal/plan/chain.go')
| -rw-r--r-- | internal/plan/chain.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/internal/plan/chain.go b/internal/plan/chain.go index bfa2484..e504504 100644 --- a/internal/plan/chain.go +++ b/internal/plan/chain.go @@ -32,6 +32,10 @@ func NewClaims() *Claims { type Input struct { File scan.File Rules []RuleMatch + // NoDelete, when non-empty, skips every delete step of this file with + // this text as the step's Skip, without ending the chain (spec §5.5 + // rule 2, §7.1). + NoDelete string } // Build turns each file's matching rules into a chain. root is the @@ -166,6 +170,10 @@ func buildOne(root string, in Input, now time.Time, d Disk, claim claimed) Chain } case config.Delete, config.DeletePermanent: + if in.NoDelete != "" { + step.Skip = in.NoDelete + break + } deletedBy = rule.Name } |
