func transform()

in cmd/transform.go [32:87]


func transform(recursive bool, ctx context.Context) ([]func(), error) {
	var restore []func()
	varFlags, err := varFlags(os.Args)
	if err != nil {
		return nil, err
	}
	rootMod, err := pkg.NewTerraformRootModuleRef(cf.tfDir)
	if err != nil {
		return nil, err
	}
	moduleRefs := []*pkg.TerraformModuleRef{
		rootMod,
	}
	if recursive {
		modulePaths, err := pkg.ModuleRefs(cf.tfDir)
		if err != nil {
			return nil, err
		}
		moduleRefs = modulePaths
	}
	for _, moduleRef := range moduleRefs {
		d := moduleRef
		err = backup.BackupFolder(d.AbsDir)
		restore = append(restore, func() {
			_ = backup.Reset(d.AbsDir)
		})
		if err != nil {
			return restore, err
		}
	}
	var mptfDirs []string
	for _, dir := range cf.mptfDirs {
		localizedDir, dispose, err := localizeConfigFolder(dir, ctx)
		if err != nil {
			return restore, err
		}
		if dispose != nil {
			defer dispose()
		}
		mptfDirs = append(mptfDirs, localizedDir)
	}
	for _, mptfDir := range mptfDirs {
		for _, tfDir := range moduleRefs {
			hclBlocks, err := pkg.LoadMPTFHclBlocks(false, mptfDir)
			if err != nil {
				return nil, err
			}
			err = applyTransform(tfDir, hclBlocks, varFlags, ctx)
			if err != nil {
				return nil, err
			}
		}
	}
	fmt.Println("Transforms applied successfully.")
	return restore, nil
}