in pkg/grept_plan.go [67:92]
func (p *GreptPlan) Apply() error {
addresses := make(map[string]struct{})
for _, fix := range p.Fixes {
addresses[fix.Address()] = struct{}{}
}
if err := golden.Traverse[Fix](p.c.BaseConfig, func(fix Fix) error {
if _, ok := p.Fixes[fix.Id()]; !ok {
return nil
}
if decodeErr := golden.Decode(fix); decodeErr != nil {
return fmt.Errorf("rule.%s.%s(%s) decode error: %+v", fix.Type(), fix.Name(), fix.HclBlock().Range().String(), decodeErr)
}
return nil
}); err != nil {
return err
}
if err := golden.Traverse[Fix](p.c.BaseConfig, func(fix Fix) error {
if _, ok := p.Fixes[fix.Id()]; !ok {
return nil
}
return fix.Apply()
}); err != nil {
return err
}
return nil
}