func()

in mmv1/provider/terraform.go [594:643]


func (t Terraform) replaceImportPath(outputFolder, target string) {
	targetFile := filepath.Join(outputFolder, target)
	sourceByte, err := os.ReadFile(targetFile)
	if err != nil {
		log.Fatalf("Cannot read file %s to replace import path: %s", targetFile, err)
	}

	data := string(sourceByte)

	gaImportPath := ImportPathFromVersion("ga")
	betaImportPath := ImportPathFromVersion("beta")

	if strings.Contains(data, betaImportPath) {
		log.Fatalf("Importing a package from module %s is not allowed in file %s. Please import a package from module %s.", betaImportPath, filepath.Base(target), gaImportPath)
	}

	if t.TargetVersionName == "ga" {
		return
	}

	// Replace the import pathes in utility files
	var tpg, dir string
	switch t.TargetVersionName {
	case "beta":
		tpg = TERRAFORM_PROVIDER_BETA
		dir = RESOURCE_DIRECTORY_BETA
	default:
		tpg = TERRAFORM_PROVIDER_PRIVATE
		dir = RESOURCE_DIRECTORY_PRIVATE

	}

	sourceByte = bytes.Replace(sourceByte, []byte(gaImportPath), []byte(tpg+"/"+dir), -1)
	sourceByte = bytes.Replace(sourceByte, []byte(TERRAFORM_PROVIDER_GA+"/version"), []byte(tpg+"/version"), -1)
	sourceByte = bytes.Replace(sourceByte, []byte("module "+TERRAFORM_PROVIDER_GA), []byte("module "+tpg), -1)

	if filepath.Ext(targetFile) == (".go") {
		formatByte, err := format.Source(sourceByte)
		if err != nil {
			log.Printf("error formatting %s: %s", targetFile, err)
		} else {
			sourceByte = formatByte
		}
	}

	err = os.WriteFile(targetFile, sourceByte, 0644)
	if err != nil {
		log.Fatalf("Cannot write file %s to replace import path: %s", target, err)
	}
}