From 48a1e1b47fecdde0127274a55e85312dbf268164 Mon Sep 17 00:00:00 2001
From: jainish shah
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
---
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.
Set this to force Homebrew to use a particular git binary.
HOMEBREW_BOTTLE_DOMAINIf set, instructs Homebrew to use the given URL as a download mirror for bottles.
+HOMEBREW_ARTIFACT_DOMAINIf set, instructs Homebrew to use the given URL as a download mirror for bottles and binaries.
HOMEBREW_BROWSERIf set, uses this setting as the browser when opening project homepages,
instead of the OS default browser.
HOMEBREW_BUILD_FROM_SOURCEIf 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\.
.