Different regex for user/tap/formula and user/tap.
Closes Homebrew/homebrew#23430.
This commit is contained in:
parent
de871a4daf
commit
98b28f5ac3
@ -16,7 +16,7 @@ module Homebrew extend self
|
|||||||
msg = blacklisted? name
|
msg = blacklisted? name
|
||||||
raise "No available formula for #{name}\n#{msg}" if msg
|
raise "No available formula for #{name}\n#{msg}" if msg
|
||||||
end
|
end
|
||||||
if not File.exist? name and name =~ HOMEBREW_TAP_REGEX then
|
if not File.exist? name and name =~ HOMEBREW_TAP_FORMULA_REGEX then
|
||||||
require 'cmd/tap'
|
require 'cmd/tap'
|
||||||
begin
|
begin
|
||||||
install_tap $1, $2
|
install_tap $1, $2
|
||||||
|
|||||||
@ -4,6 +4,12 @@ require 'utils'
|
|||||||
require 'utils/json'
|
require 'utils/json'
|
||||||
|
|
||||||
module Homebrew extend self
|
module Homebrew extend self
|
||||||
|
|
||||||
|
# A regular expession to capture the username (one or more char but no `/`,
|
||||||
|
# which has to be escaped like `\/`), repository, followed by an optional `/`
|
||||||
|
# and an optional query.
|
||||||
|
TAP_QUERY_REGEX = /^([^\/]+)\/([^\/]+)\/?(.+)?$/
|
||||||
|
|
||||||
def search
|
def search
|
||||||
if ARGV.include? '--macports'
|
if ARGV.include? '--macports'
|
||||||
exec_browser "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
|
exec_browser "http://www.macports.org/ports.php?by=name&substr=#{ARGV.next}"
|
||||||
@ -19,7 +25,7 @@ module Homebrew extend self
|
|||||||
exec_browser "http://packages.ubuntu.com/search?keywords=#{ARGV.next}&searchon=names&suite=all§ion=all"
|
exec_browser "http://packages.ubuntu.com/search?keywords=#{ARGV.next}&searchon=names&suite=all§ion=all"
|
||||||
elsif (query = ARGV.first).nil?
|
elsif (query = ARGV.first).nil?
|
||||||
puts_columns Formula.names
|
puts_columns Formula.names
|
||||||
elsif ARGV.first =~ HOMEBREW_TAP_REGEX
|
elsif ARGV.first =~ TAP_QUERY_REGEX
|
||||||
# So look for user/repo/query or list all formulae by the tap
|
# So look for user/repo/query or list all formulae by the tap
|
||||||
# we downcase to avoid case-insensitive filesystem issues.
|
# we downcase to avoid case-insensitive filesystem issues.
|
||||||
user, repo, query = $1.downcase, $2.downcase, $3
|
user, repo, query = $1.downcase, $2.downcase, $3
|
||||||
|
|||||||
@ -44,7 +44,7 @@ class FormulaUnavailableError < RuntimeError
|
|||||||
end
|
end
|
||||||
|
|
||||||
def to_s
|
def to_s
|
||||||
if name =~ HOMEBREW_TAP_REGEX then <<-EOS.undent
|
if name =~ HOMEBREW_TAP_FORMULA_REGEX then <<-EOS.undent
|
||||||
No available formula for #$3 #{dependent_s}
|
No available formula for #$3 #{dependent_s}
|
||||||
Please tap it and then try again: brew tap #$1/#$2
|
Please tap it and then try again: brew tap #$1/#$2
|
||||||
EOS
|
EOS
|
||||||
|
|||||||
@ -83,10 +83,7 @@ HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY
|
|||||||
|
|
||||||
HOMEBREW_CURL_ARGS = '-f#LA'
|
HOMEBREW_CURL_ARGS = '-f#LA'
|
||||||
|
|
||||||
# A regular expession to capture the username (one or more char but no `/`,
|
HOMEBREW_TAP_FORMULA_REGEX = %r{(\w+)/(\w+)/([^/]+)}
|
||||||
# which has to be escaped like `\/`), repository, followed by an optional `/`
|
|
||||||
# and an optional query.
|
|
||||||
HOMEBREW_TAP_REGEX = /^([^\/]+)\/([^\/]+)\/?(.+)?$/
|
|
||||||
|
|
||||||
module Homebrew extend self
|
module Homebrew extend self
|
||||||
include FileUtils
|
include FileUtils
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user