func()

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
}