Use Formulary.factory to find formula in taps

This commit is contained in:
Jack Nagel 2014-04-27 15:21:30 -05:00
parent 070bdc59b9
commit 3b15b58d00

View File

@ -20,30 +20,21 @@ module Homebrew extend self
exec_browser "https://admin.fedoraproject.org/pkgdb/acls/list/*#{ARGV.next}*"
elsif ARGV.include? '--ubuntu'
exec_browser "http://packages.ubuntu.com/search?keywords=#{ARGV.next}&searchon=names&suite=all&section=all"
elsif (query = ARGV.first).nil?
elsif ARGV.empty?
puts_columns Formula.names
elsif ARGV.first =~ HOMEBREW_TAP_FORMULA_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
tap_dir = HOMEBREW_LIBRARY/"Taps/#{user}/homebrew-#{repo}"
# If, instead of `user/repo/query` the user wrote `user/repo query`:
query = ARGV[1] if query.nil?
if tap_dir.directory?
result = ""
if query
tap_dir.find_formula do |file|
basename = file.basename(".rb").to_s
result = basename if basename == query
end
end
else
# Search online:
query = '' if query.nil?
result = search_tap(user, repo, query_regexp(query))
query = ARGV.first
user, repo, name = query.split("/", 3)
begin
result = Formulary.factory(query).name
rescue FormulaUnavailableError
result = search_tap(user, repo, name)
end
puts_columns result
puts_columns Array(result)
else
query = ARGV.first
rx = query_regexp(query)
local_results = search_formulae(rx)
puts_columns(local_results)