Update brew tap to work without 'homebrew-'
Currently `brew tap` only works on repos with 'homebrew-' in their name. This version tries the repo name as is and then falls back to try 'homebrew-repo' only if that fails. I've also tweaked the regex in tap_args to allow '-' in repo names. The previous regex required a match on \w. This made it impossible for people to tap repos with names like 'username/why-not'. Closes Homebrew/homebrew#18366. Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
This commit is contained in:
parent
79a67fd097
commit
3381142bc7
@ -24,7 +24,21 @@ module Homebrew extend self
|
||||
# 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/#{repouser}/homebrew-#{repo} #{tapd}"
|
||||
# First try tapping the repo name as is. If that fails, fall back to
|
||||
# 'homebrew-repo'.
|
||||
stdout = `git clone https://github.com/#{repouser}/#{repo} #{tapd} 2>/dev/null`
|
||||
unless $?.success?
|
||||
stdout = `git clone https://github.com/#{repouser}/homebrew-#{repo} #{tapd} 2>&1`
|
||||
if $?.success?
|
||||
repo = "homebrew-" + repo
|
||||
else
|
||||
abort <<-EOS.undent
|
||||
Neither #{repouser}/#{repo} nor #{repouser}/homebrew-#{repo} tapped.
|
||||
Please check the tap name and try again.
|
||||
EOS
|
||||
end
|
||||
end
|
||||
puts stdout
|
||||
|
||||
files = []
|
||||
tapd.find_formula{ |file| files << tapd.basename.join(file) }
|
||||
@ -34,7 +48,7 @@ module Homebrew extend self
|
||||
# Figure out if this repo is private
|
||||
# curl will throw an exception if the repo is private (Github returns a 404)
|
||||
begin
|
||||
curl('-Ifso', '/dev/null', "https://api.github.com/repos/#{repouser}/homebrew-#{repo}")
|
||||
curl('-Ifso', '/dev/null', "https://api.github.com/repos/#{repouser}/#{repo}")
|
||||
rescue
|
||||
puts
|
||||
puts "It looks like you tapped a private repository"
|
||||
@ -43,7 +57,7 @@ module Homebrew extend self
|
||||
puts "following command:"
|
||||
puts
|
||||
puts " cd #{tapd}"
|
||||
puts " git remote set-url origin git@github.com:#{repouser}/homebrew-#{repo}.git"
|
||||
puts " git remote set-url origin git@github.com:#{repouser}/#{repo}.git"
|
||||
puts
|
||||
end
|
||||
end
|
||||
@ -102,7 +116,7 @@ module Homebrew extend self
|
||||
private
|
||||
|
||||
def tap_args
|
||||
ARGV.first =~ %r{^(\S+)/(homebrew-)?(\w+)$}
|
||||
ARGV.first =~ %r{^(\S+)/(homebrew-)?([-\w]+)$}
|
||||
raise "Invalid usage" unless $1 and $3
|
||||
[$1, $3]
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user