From 161b89ddf082e9b407f47be23adf3f157da41a91 Mon Sep 17 00:00:00 2001
From: Mike McQuaid <mike@mikemcquaid.com>
Date: Wed, 30 Jan 2013 19:36:24 -0800
Subject: [PATCH] Add SourceForge bottle mirror selection.

Use ENV['HOMEBREW_SOURCEFORGE_MIRROR'].

Closes Homebrew/homebrew#15642.
Closes Homebrew/homebrew#17368.
---
 Library/Contributions/manpages/brew.1.md |  6 ++++++
 Library/Homebrew/download_strategy.rb    |  2 ++
 share/man/man1/brew.1                    | 12 ++++++++----
 3 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md
index b151b6f0ab..168af06d82 100644
--- a/Library/Contributions/manpages/brew.1.md
+++ b/Library/Contributions/manpages/brew.1.md
@@ -446,6 +446,12 @@ can take several different forms:
 
     *Note:* Homebrew will only try to print emoji on Lion or newer.
 
+  * HOMEBREW\_SOURCEFORGE\_MIRROR:
+    If set, Homebrew will use the value of `HOMEBREW_SOURCEFORGE_MIRROR` to
+    select a SourceForge mirror for downloading bottles.
+
+    *Example:* `export HOMEBREW_SOURCEFORGE_MIRROR='heanet'`
+
   * HOMEBREW\_SVN:
     When exporting from Subversion, Homebrew will use `HOMEBREW_SVN` if set,
     a Homebrew-built Subversion if installed, or the system-provided binary.
diff --git a/Library/Homebrew/download_strategy.rb b/Library/Homebrew/download_strategy.rb
index 7f76d6f528..62e210ded5 100644
--- a/Library/Homebrew/download_strategy.rb
+++ b/Library/Homebrew/download_strategy.rb
@@ -200,6 +200,8 @@ class CurlBottleDownloadStrategy < CurlDownloadStrategy
   def initialize name, package
     super
     @tarball_path = HOMEBREW_CACHE/"#{name}-#{package.version}#{ext}"
+    mirror = ENV['HOMEBREW_SOURCEFORGE_MIRROR']
+    @url = "#{@url}?use_mirror=#{mirror}" if mirror
   end
 end
 
diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1
index a7610061eb..0deafb596f 100644
--- a/share/man/man1/brew.1
+++ b/share/man/man1/brew.1
@@ -19,10 +19,7 @@ Homebrew is the easiest and most flexible way to install the UNIX tools Apple di
 For the full command list, see the COMMANDS section\.
 .
 .P
-With \fB\-\-verbose\fR or \fB\-v\fR, many commands print extra debugging information\.
-.
-.br
-Note that these flags should only appear after a command\.
+With \fB\-\-verbose\fR or \fB\-v\fR, many commands print extra debugging information\. Note that these flags should only appear after a command\.
 .
 .TP
 \fBinstall\fR \fIformula\fR
@@ -493,6 +490,13 @@ If set, Homebrew will not print the beer emoji on a successful build\.
 \fINote:\fR Homebrew will only try to print emoji on Lion or newer\.
 .
 .TP
+HOMEBREW_SOURCEFORGE_MIRROR
+If set, Homebrew will use the value of \fBHOMEBREW_SOURCEFORGE_MIRROR\fR to select a SourceForge mirror for downloading bottles\.
+.
+.IP
+\fIExample:\fR \fBexport HOMEBREW_SOURCEFORGE_MIRROR=\'heanet\'\fR
+.
+.TP
 HOMEBREW_SVN
 When exporting from Subversion, Homebrew will use \fBHOMEBREW_SVN\fR if set, a Homebrew\-built Subversion if installed, or the system\-provided binary\.
 .
-- 
GitLab