diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-06-02 15:50:30 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-06-02 15:50:30 +0900 |
| commit | 6c2f7089b65c5e3eb5c3e65210abc0147f97ff45 (patch) | |
| tree | 6270391fff9f554eb2fb6f0178ce3c0c8384577a /internal/pkg/clean.go | |
| parent | 74c18390b4d0e33f960622fa158be09f46491eb7 (diff) | |
internal/pkg: destroy unreachable status entries
These must be destroyed alongside their corresponding identifier or substitute entries to avoid inconsistent state.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/clean.go')
| -rw-r--r-- | internal/pkg/clean.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/internal/pkg/clean.go b/internal/pkg/clean.go index addcd32d..efeb40de 100644 --- a/internal/pkg/clean.go +++ b/internal/pkg/clean.go @@ -81,6 +81,13 @@ func (c *Cache) Clean(dry, inputs bool, keep ...Artifact) ( for _, pair := range idents { if !dry { if err = os.Remove(c.base.Append( + dirStatus, + pair.name, + ).String()); err != nil && !errors.Is(err, os.ErrNotExist) { + return destroyedIdents, nil, err + } + + if err = os.Remove(c.base.Append( dirIdentifier, pair.name, ).String()); err != nil { @@ -126,6 +133,13 @@ func (c *Cache) Clean(dry, inputs bool, keep ...Artifact) ( c.msg.Verbosef("destroying substitute %s...", name) if !dry { if err = os.Remove(c.base.Append( + dirStatus, + name, + ).String()); err != nil && !errors.Is(err, os.ErrNotExist) { + return destroyedIdents, nil, err + } + + if err = os.Remove(c.base.Append( dirSubstitute, name, ).String()); err != nil { |
