func InspectVersion()

in astro/tvm/inspect.go [29:49]


func InspectVersion(binaryPath string) (*version.Version, error) {
	stdout, err := exec.Command(binaryPath, "version").Output()
	if err != nil {
		return nil, err
	}

	s := bytes.SplitN(stdout, []byte("\n"), 2)
	if len(s) < 2 {
		return nil, fmt.Errorf("unable to read lines from data: %s", s)
	}

	// e.g. "Terraform v0.7.13"
	versionLine := s[0]

	v := bytes.Split(versionLine, []byte("v"))
	if len(v) != 2 {
		return nil, fmt.Errorf("unable to parse version from data: %s", v)
	}

	return version.NewVersion(string(v[1]))
}