tf/tfinstall_find.go (18 lines of code) (raw):
package tf
import (
"context"
"github.com/hashicorp/go-version"
install "github.com/hashicorp/hc-install"
"github.com/hashicorp/hc-install/fs"
"github.com/hashicorp/hc-install/product"
"github.com/hashicorp/hc-install/src"
)
// FindTerraform finds the path to the terraform executable.
func FindTerraform(ctx context.Context) (string, error) {
i := install.NewInstaller()
return i.Ensure(ctx, []src.Source{
&fs.Version{
Product: product.Terraform,
Constraints: version.MustConstraints(version.NewConstraint(">=0.12")),
},
})
}