in pkg/mptf_plan.go [36:67]
func (m *MetaProgrammingTFPlan) Apply() error {
var err error
addresses := make(map[string]struct{})
for _, transform := range m.Transforms {
addresses[transform.Address()] = struct{}{}
}
if err = golden.Traverse[Transform](m.c.BaseConfig, func(b Transform) error {
if _, ok := addresses[b.Address()]; !ok {
return nil
}
if err := golden.Decode(b); err != nil {
return fmt.Errorf("%s(%s) decode error: %+v", b.Address(), b.HclBlock().Range().String(), err)
}
return nil
}); err != nil {
return err
}
if err = golden.Traverse[Transform](m.c.BaseConfig, func(b Transform) error {
if _, ok := addresses[b.Address()]; !ok {
return nil
}
return b.Apply()
}); err != nil {
return fmt.Errorf("errors applying transforms: %+v", err)
}
if err = m.c.SaveToDisk(); err != nil {
return fmt.Errorf("errors saving changes: %+v", err)
}
return nil
}