func ConvertToLocalBackend()

in internal/tfengine/tfengine.go [266:299]


func ConvertToLocalBackend(path string) error {
	// Replace all GCS backend blocks with local.
	fn := func(path string, info os.FileInfo, err error) error {
		if err != nil {
			return fmt.Errorf("walk path %q: %v", path, err)
		}

		if filepath.Ext(path) != ".tf" {
			return nil
		}

		b, err := ioutil.ReadFile(path)
		if err != nil {
			return fmt.Errorf("read file %q: %v", path, err)
		}

		b = backendRE.ReplaceAll(b, nil)
		b = remoteStateResourceRE.ReplaceAll(b, nil)
		// Replace data.terraform_remote_state references with a dummy string value.
		b = remoteStateDataRE.ReplaceAll(b, []byte(`"000"`))

		if err := ioutil.WriteFile(path, b, 0644); err != nil {
			return fmt.Errorf("write file %q: %v", path, err)
		}

		return nil
	}

	if err := filepath.Walk(path, fn); err != nil {
		return fmt.Errorf("walk %qs: %v", path, err)
	}

	return nil
}