aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/cmd/tap.rb11
-rw-r--r--Library/Homebrew/cmd/untap.rb8
2 files changed, 16 insertions, 3 deletions
diff --git a/Library/Homebrew/cmd/tap.rb b/Library/Homebrew/cmd/tap.rb
index b72837320..16ed0a9a8 100644
--- a/Library/Homebrew/cmd/tap.rb
+++ b/Library/Homebrew/cmd/tap.rb
@@ -14,12 +14,17 @@ module Homebrew extend self
def install_tap user, repo
raise "brew install git" unless system "/usr/bin/which -s git"
- tapd = HOMEBREW_LIBRARY/"Taps/#{user}-#{repo}"
+ # we special case homebrew so users don't have to shift in a terminal
+ repouser = if user == "homebrew" then "Homebrew" else user end
+ user = "homebrew" if user == "Homebrew"
+
+ # we downcase to avoid case-insensitive filesystem issues
+ tapd = HOMEBREW_LIBRARY/"Taps/#{user.downcase}-#{repo.downcase}"
raise "Already tapped!" if tapd.directory?
- abort unless system "git clone https://github.com/#{user}/homebrew-#{repo} #{tapd}"
+ abort unless system "git clone https://github.com/#{repouser}/homebrew-#{repo} #{tapd}"
files = []
- tapd.find_formula{ |file| files << Pathname.new("#{user}-#{repo}").join(file) }
+ tapd.find_formula{ |file| files << tapd.basename.join(file) }
tapped = link_tap_formula(files)
puts "Tapped #{tapped} formula"
end
diff --git a/Library/Homebrew/cmd/untap.rb b/Library/Homebrew/cmd/untap.rb
index 577a59a12..e1529c288 100644
--- a/Library/Homebrew/cmd/untap.rb
+++ b/Library/Homebrew/cmd/untap.rb
@@ -3,6 +3,14 @@ require 'cmd/tap' # for tap_args
module Homebrew extend self
def untap
user, repo = tap_args
+
+ # we consistently downcase in tap to ensure we are not bitten by case-insensive
+ # filesystem issues. Which is the default on mac. The problem being the
+ # filesystem cares, but our regexps don't. So unless we resolve *every* path
+ # we will get bitten.
+ user.downcase!
+ repo.downcase!
+
tapd = HOMEBREW_LIBRARY/"Taps/#{user}-#{repo}"
raise "No such tap!" unless tapd.directory?