From 2cc9071791389e2829e96d5a42d77b4e34b6e8dd Mon Sep 17 00:00:00 2001
From: Alex McGrath Kraak <amkdude@gmail.com>
Date: Thu, 17 Aug 2017 05:49:27 +0100
Subject: [PATCH] http: add --user-agent option. close #1557

---
 fs/config.go | 1 +
 fs/fs.go     | 2 --
 fs/http.go   | 2 +-
 3 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/fs/config.go b/fs/config.go
index 76044116d..0ec998274 100644
--- a/fs/config.go
+++ b/fs/config.go
@@ -101,6 +101,7 @@ var (
 	tpsLimitBurst   = IntP("tpslimit-burst", "", 1, "Max burst of transactions for --tpslimit.")
 	bindAddr        = StringP("bind", "", "", "Local address to bind to for outgoing connections, IPv4, IPv6 or name.")
 	disableFeatures = StringP("disable", "", "", "Disable a comma separated list of features.  Use help to see a list.")
+	userAgent       = StringP("user-agent", "", "rclone/"+Version, "Set the user-agent to a specified string. The default is rclone/ version")
 	logLevel        = LogLevelNotice
 	statsLogLevel   = LogLevelInfo
 	bwLimit         BwTimetable
diff --git a/fs/fs.go b/fs/fs.go
index 86af2c273..0bba2ed10 100644
--- a/fs/fs.go
+++ b/fs/fs.go
@@ -28,8 +28,6 @@ const (
 
 // Globals
 var (
-	// UserAgent set in the default Transport
-	UserAgent = "rclone/" + Version
 	// Filesystem registry
 	fsRegistry []*RegInfo
 	// ErrorNotFoundInConfigFile is returned by NewFs if not found in config file
diff --git a/fs/http.go b/fs/http.go
index b6db85601..3b76a2f5d 100644
--- a/fs/http.go
+++ b/fs/http.go
@@ -241,7 +241,7 @@ func (t *Transport) RoundTrip(req *http.Request) (resp *http.Response, err error
 		}
 	}
 	// Force user agent
-	req.Header.Set("User-Agent", UserAgent)
+	req.Header.Set("User-Agent", *userAgent)
 	// Logf request
 	if t.logHeader || t.logBody || t.logAuth {
 		buf, _ := httputil.DumpRequestOut(req, t.logBody)