remote: unix socket support for remote http caching

This adds support for Unix sockets to Bazel for the
remote http cache. See corresponding issue #5098
for discussion.

RELNOTES: Introduce the --remote_cache_proxy flag,
which allows for remote http caching to connect
via a unix domain socket.
PiperOrigin-RevId: 204111667
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
index bb61082..90f4207 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteOptions.java
@@ -36,6 +36,17 @@
   public String remoteHttpCache;
 
   @Option(
+      name = "remote_cache_proxy",
+      defaultValue = "null",
+      documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,
+      effectTags = {OptionEffectTag.UNKNOWN},
+      help =
+          "Connect to the remote cache through a proxy. Currently this flag can only be used to "
+              + "configure a Unix domain socket (unix:/path/to/socket) for the HTTP cache."
+  )
+  public String remoteCacheProxy;
+
+  @Option(
       name = "remote_max_connections",
       defaultValue = "100",
       documentationCategory = OptionDocumentationCategory.UNCATEGORIZED,