Clarify behavior of brew search without an argument
As documented in the man page, when given no arguments, `brew search` will list all formulae. This is different than giving an *empty* argument.
This commit is contained in:
parent
d912bc5ff3
commit
6b299c4207
@ -11,13 +11,14 @@ module Homebrew extend self
|
|||||||
exec_browser "http://pdb.finkproject.org/pdb/browse.php?summary=#{ARGV.next}"
|
exec_browser "http://pdb.finkproject.org/pdb/browse.php?summary=#{ARGV.next}"
|
||||||
elsif ARGV.include? '--debian'
|
elsif ARGV.include? '--debian'
|
||||||
exec_browser "http://packages.debian.org/search?keywords=#{ARGV.next}&searchon=names&suite=all§ion=all"
|
exec_browser "http://packages.debian.org/search?keywords=#{ARGV.next}&searchon=names&suite=all§ion=all"
|
||||||
|
elsif (query = ARGV.first).nil?
|
||||||
|
puts_columns Formula.names
|
||||||
else
|
else
|
||||||
query = ARGV.first
|
|
||||||
rx = query_regexp(query)
|
rx = query_regexp(query)
|
||||||
local_results = search_formulae(rx)
|
local_results = search_formulae(rx)
|
||||||
puts_columns(local_results)
|
puts_columns(local_results)
|
||||||
|
|
||||||
if not query.to_s.empty? and $stdout.tty? and msg = blacklisted?(query)
|
if not query.empty? and $stdout.tty? and msg = blacklisted?(query)
|
||||||
unless local_results.empty?
|
unless local_results.empty?
|
||||||
puts
|
puts
|
||||||
puts "If you meant #{query.inspect} precisely:"
|
puts "If you meant #{query.inspect} precisely:"
|
||||||
@ -26,18 +27,16 @@ module Homebrew extend self
|
|||||||
puts msg
|
puts msg
|
||||||
end
|
end
|
||||||
|
|
||||||
if query
|
tap_results = search_taps(rx)
|
||||||
tap_results = search_taps(rx)
|
puts_columns(tap_results)
|
||||||
puts_columns(tap_results)
|
count = local_results.length + tap_results.length
|
||||||
count = local_results.length + tap_results.length
|
|
||||||
|
|
||||||
if count == 0 and not blacklisted? query
|
if count == 0 and not blacklisted? query
|
||||||
puts "No formula found for #{query.inspect}. Searching open pull requests..."
|
puts "No formula found for #{query.inspect}. Searching open pull requests..."
|
||||||
begin
|
begin
|
||||||
GitHub.find_pull_requests(rx) { |pull| puts pull }
|
GitHub.find_pull_requests(rx) { |pull| puts pull }
|
||||||
rescue GitHub::Error => e
|
rescue GitHub::Error => e
|
||||||
opoo e.message
|
opoo e.message
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -57,7 +56,6 @@ module Homebrew extend self
|
|||||||
|
|
||||||
def query_regexp(query)
|
def query_regexp(query)
|
||||||
case query
|
case query
|
||||||
when nil then ""
|
|
||||||
when %r{^/(.*)/$} then Regexp.new($1)
|
when %r{^/(.*)/$} then Regexp.new($1)
|
||||||
else /.*#{Regexp.escape(query)}.*/i
|
else /.*#{Regexp.escape(query)}.*/i
|
||||||
end
|
end
|
||||||
@ -90,18 +88,14 @@ module Homebrew extend self
|
|||||||
end
|
end
|
||||||
|
|
||||||
def search_formulae rx
|
def search_formulae rx
|
||||||
if rx.to_s.empty?
|
aliases = Formula.aliases
|
||||||
Formula.names
|
results = (Formula.names+aliases).grep(rx)
|
||||||
else
|
|
||||||
aliases = Formula.aliases
|
|
||||||
results = (Formula.names+aliases).grep rx
|
|
||||||
|
|
||||||
# Filter out aliases when the full name was also found
|
# Filter out aliases when the full name was also found
|
||||||
results.reject do |alias_name|
|
results.reject do |alias_name|
|
||||||
if aliases.include? alias_name
|
if aliases.include? alias_name
|
||||||
resolved_name = (HOMEBREW_REPOSITORY+"Library/Aliases"+alias_name).readlink.basename('.rb').to_s
|
resolved_name = (HOMEBREW_REPOSITORY+"Library/Aliases"+alias_name).readlink.basename('.rb').to_s
|
||||||
results.include? resolved_name
|
results.include? resolved_name
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user