Files
2025-04-20 05:16:35 -05:00

32 lines
622 B
Go

package goexec
import (
"context"
"github.com/rs/zerolog"
)
type Clean interface {
Clean(ctx context.Context) error
}
type Cleaner struct {
workers []func(ctx context.Context) error
}
func (c *Cleaner) AddCleaners(workers ...func(ctx context.Context) error) {
c.workers = append(c.workers, workers...)
}
func (c *Cleaner) Clean(ctx context.Context) (err error) {
log := zerolog.Ctx(ctx).With().
Str("component", "cleaner").Logger()
for _, worker := range c.workers {
if err = worker(log.WithContext(ctx)); err != nil {
log.Warn().Err(err).Msg("Clean worker failed")
}
}
return
}