func()

in astro/terraform/terraform_remote_state_disable.go [33:66]


func (s *Session) Detach() (Result, error) {
	logger.Trace.Printf("terraform: detaching remote state in %v", s.moduleDir)

	var res Result
	var err error

	if !s.Initialized() {
		if res, err := s.Init(); err != nil {
			return res, err
		}
	}

	terraformVersion, err := s.versionCached()
	if err != nil {
		return nil, err
	}

	if VersionMatches(terraformVersion, "<0.9") {
		res, err = s.detachLegacy()
	} else {
		res, err = s.detachModern()
	}

	if err != nil {
		return res, err
	}

	// failsafe to make sure the remote file was copied locally
	if !utils.FileExists(filepath.Join(s.moduleDir, "terraform.tfstate")) {
		return nil, errors.New("detach failed: terraform.tfstate does not exist")
	}

	return res, nil
}