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
 | 
			
		||||
        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
 | 
			
		||||
 | 
			
		||||
@ -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§ion=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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
@ -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
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user