forked from rosa/hakurei
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>
This commit is contained in:
@@ -80,6 +80,13 @@ func (c *Cache) Clean(dry, inputs bool, keep ...Artifact) (
|
||||
destroyedIdents := make([]unique.Handle[ID], 0, len(idents))
|
||||
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,
|
||||
@@ -125,6 +132,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,
|
||||
|
||||
Reference in New Issue
Block a user