func TfOutput()

in internal/terraform/tf.go [205:233]


func TfOutput(dir string, outputVar string, verbose bool) (string, error) {
	var output string

	ctx := context.Background()

	tf, _ := initializeTerraformClient(dir, verbose)

	outputs, err := tf.Output(ctx)

	if err != nil {
		return "", err
	}

	if outputVar != "" {
		raw := string(outputs[outputVar].Value)
		output = strings.Trim(raw, `"`)

		// Asked for a value not found in outputs
		if output == "" {
			err := errors.New("output value not found")
			return "", err
		}
	} else {
		bytes, _ := json.Marshal(outputs)
		output = string(bytes)
	}

	return output, nil
}