aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2013-10-22 11:58:33 +0100
committerMike McQuaid2013-10-22 11:58:40 +0100
commite6cf7be461bfac3670beb42661be495c90398dc9 (patch)
treebdb90656195afdf5625a6a39bd11132b73a7d2ab
parentcf1211dfac85ec342a8c5a24cd796d6e5720a289 (diff)
downloadhomebrew-e6cf7be461bfac3670beb42661be495c90398dc9.tar.bz2
Different regex for user/tap/formula and user/tap.
Closes #23430.
-rw-r--r--Library/Homebrew/cmd/install.rb2
-rw-r--r--Library/Homebrew/cmd/search.rb8
-rw-r--r--Library/Homebrew/exceptions.rb2
-rw-r--r--Library/Homebrew/global.rb5
4 files changed, 10 insertions, 7 deletions
diff --git a/Library/Homebrew/cmd/install.rb b/Library/Homebrew/cmd/install.rb
index a8bd6454f..b24783aac 100644
--- a/Library/Homebrew/cmd/install.rb
+++ b/Library/Homebrew/cmd/install.rb
@@ -16,7 +16,7 @@ module Homebrew extend self
msg = blacklisted? name
raise "No available formula for #{name}\n#{msg}" if msg
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'
begin
install_tap $1, $2
diff --git a/Library/Homebrew/cmd/search.rb b/Library/Homebrew/cmd/search.rb
index 204a178ae..b2febbdba 100644
--- a/Library/Homebrew/cmd/search.rb
+++ b/Library/Homebrew/cmd/search.rb
@@ -4,6 +4,12 @@ require 'utils'
require 'utils/json'
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
if ARGV.include? '--macports'
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&section=all"
elsif (query = ARGV.first).nil?
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
# we downcase to avoid case-insensitive filesystem issues.
user, repo, query = $1.downcase, $2.downcase, $3
diff --git a/Library/Homebrew/exceptions.rb b/Library/Homebrew/exceptions.rb
index 9764879bd..92b1a4177 100644
--- a/Library/Homebrew/exceptions.rb
+++ b/Library/Homebrew/exceptions.rb
@@ -44,7 +44,7 @@ class FormulaUnavailableError < RuntimeError
end
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}
Please tap it and then try again: brew tap #$1/#$2
EOS
diff --git a/Library/Homebrew/global.rb b/Library/Homebrew/global.rb
index 2345997c0..caa6ccb37 100644
--- a/Library/Homebrew/global.rb
+++ b/Library/Homebrew/global.rb
@@ -83,10 +83,7 @@ HOMEBREW_USER_AGENT = "Homebrew #{HOMEBREW_VERSION} (Ruby #{RUBY_VERSION}-#{RUBY
HOMEBREW_CURL_ARGS = '-f#LA'
-# 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.
-HOMEBREW_TAP_REGEX = /^([^\/]+)\/([^\/]+)\/?(.+)?$/
+HOMEBREW_TAP_FORMULA_REGEX = %r{(\w+)/(\w+)/([^/]+)}
module Homebrew extend self
include FileUtils