func OverwriteTf()

in mpdev/internal/tf/overwrite.go [56:115]


func OverwriteTf(config *overwriteConfig, dir string) error {

	upsertErr := upsertConsumerLabel(dir, config.ConsumerLabel)
	if upsertErr != nil {
		return upsertErr
	}

	if config.NewValues != nil {
		fmt.Printf("Replacing the default values of the variables: %s\n", config.NewValues)

		for varName, newValue := range config.NewValues {
			varInfo, err := getVarInfo(varName, dir)
			if err != nil {
				return err
			}

			if varInfo.Type != "string" {
				return fmt.Errorf("image variable: %s must be type string", varName)
			}

			err = overwriteFile(varInfo.Pos.Filename, varName, newValue)
			if err != nil {
				return err
			}
		}
	} else {
		fmt.Printf("Replacing the default values of the variables: %s\n", config.Variables)
		fmt.Printf("Mapping of values to replace: %s\n", config.Replacements)

		for _, varname := range config.Variables {
			varInfo, err := getVarInfo(varname, dir)
			if err != nil {
				return err
			}

			if varInfo.Default == nil {
				return fmt.Errorf("image variable: %s must have default value", varname)
			}

			defaultVal, ok := varInfo.Default.(string)
			if !ok {
				return fmt.Errorf("image variable: %s must be type string", varname)
			}

			replaceVal, ok := config.Replacements[defaultVal]
			if !ok {
				return fmt.Errorf("default value: %s of variable: %s not found in replacements",
					defaultVal, varname)
			}

			err = overwriteFile(varInfo.Pos.Filename, varname, replaceVal)
			if err != nil {
				return err
			}
		}
	}

	fmt.Println("Successfully replaced default values in tf files")
	return nil
}