blob: a38e8d10b3476d05ce74fa4c7b1ca5e93784ed75 [file] [log] [blame]
package tfinstall
import (
"fmt"
"net/http"
"os"
"strings"
cleanhttp "github.com/hashicorp/go-cleanhttp"
intversion "github.com/hashicorp/terraform-exec/internal/version"
)
type userAgentRoundTripper struct {
inner http.RoundTripper
userAgent string
}
func (rt *userAgentRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
if _, ok := req.Header["User-Agent"]; !ok {
req.Header.Set("User-Agent", rt.userAgent)
}
return rt.inner.RoundTrip(req)
}
func newHTTPClient() *http.Client {
appendUA := os.Getenv("TF_APPEND_USER_AGENT")
userAgent := strings.TrimSpace(fmt.Sprintf("HashiCorp-tfinstall/%s %s", intversion.ModuleVersion(), appendUA))
cli := cleanhttp.DefaultPooledClient()
cli.Transport = &userAgentRoundTripper{
userAgent: userAgent,
inner: cli.Transport,
}
return cli
}