From 48a1e1b47fecdde0127274a55e85312dbf268164 Mon Sep 17 00:00:00 2001
From: jainish shah <jainishshah@yahoo.com>
Date: Wed, 13 Jul 2016 11:43:43 +0100
Subject: [PATCH] Add HOMEBREW_ARTIFACT_DOMAIN option.

If set, this environment variable instructs Homebrew to use the given URL as a
download mirror (e.g. an Artifactory instance) for bottles and binaries.

Closes #387.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
---
 Library/Homebrew/download_strategy.rb   | 5 +++++
 Library/Homebrew/manpages/brew.1.md.erb | 3 +++
 share/doc/homebrew/brew.1.html          | 1 +
 share/man/man1/brew.1                   | 4 ++++
 4 files changed, 13 insertions(+)

diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb
index 4cb1a185a0..ec060cef02 100644
--- a/Library/Homebrew/download_strategy.rb
+++ b/Library/Homebrew/download_strategy.rb
@@ -330,6 +330,11 @@ class CurlDownloadStrategy < AbstractFileDownloadStrategy
 
   # Private method, can be overridden if needed.
   def _fetch
+    if ENV["HOMEBREW_ARTIFACT_DOMAIN"]
+      @url.sub!(%r{^((ht|f)tps?://)?}, ENV["HOMEBREW_ARTIFACT_DOMAIN"].chomp("/") + "/")
+      ohai "Downloading from #{@url}"
+    end
+
     urls = actual_urls
     unless urls.empty?
       ohai "Downloading from #{urls.last}"
diff --git a/Library/Homebrew/manpages/brew.1.md.erb b/Library/Homebrew/manpages/brew.1.md.erb
index 21fc4f81ac..affac9295e 100644
--- a/Library/Homebrew/manpages/brew.1.md.erb
+++ b/Library/Homebrew/manpages/brew.1.md.erb
@@ -105,6 +105,9 @@ can take several different forms:
   * `HOMEBREW_BOTTLE_DOMAIN`:
     If set, instructs Homebrew to use the given URL as a download mirror for bottles.
 
+  * `HOMEBREW_ARTIFACT_DOMAIN`:
+    If set, instructs Homebrew to use the given URL as a download mirror for bottles and binaries.
+
   * `HOMEBREW_BROWSER`:
     If set, uses this setting as the browser when opening project homepages,
     instead of the OS default browser.
diff --git a/share/doc/homebrew/brew.1.html b/share/doc/homebrew/brew.1.html
index 5951ade590..007edd11cd 100644
--- a/share/doc/homebrew/brew.1.html
+++ b/share/doc/homebrew/brew.1.html
@@ -518,6 +518,7 @@ a Homebrew-built Git if installed, or the system-provided binary.</p>
 
 <p>Set this to force Homebrew to use a particular git binary.</p></dd>
 <dt><code>HOMEBREW_BOTTLE_DOMAIN</code></dt><dd><p>If set, instructs Homebrew to use the given URL as a download mirror for bottles.</p></dd>
+<dt><code>HOMEBREW_ARTIFACT_DOMAIN</code></dt><dd><p>If set, instructs Homebrew to use the given URL as a download mirror for bottles and binaries.</p></dd>
 <dt><code>HOMEBREW_BROWSER</code></dt><dd><p>If set, uses this setting as the browser when opening project homepages,
 instead of the OS default browser.</p></dd>
 <dt><code>HOMEBREW_BUILD_FROM_SOURCE</code></dt><dd><p>If set, instructs Homebrew to compile from source even when a formula
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index d7172aad9c..b235f76621 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -715,6 +715,10 @@ Set this to force Homebrew to use a particular git binary\.
 If set, instructs Homebrew to use the given URL as a download mirror for bottles\.
 .
 .TP
+\fBHOMEBREW_ARTIFACT_DOMAIN\fR
+If set, instructs Homebrew to use the given URL as a download mirror for bottles and binaries\.
+.
+.TP
 \fBHOMEBREW_BROWSER\fR
 If set, uses this setting as the browser when opening project homepages, instead of the OS default browser\.
 .
-- 
GitLab