Skip to content
Snippets Groups Projects
Commit b265d870 authored by Markus Reiter's avatar Markus Reiter
Browse files

Allow searching Casks by name.

parent b21430b1
No related branches found
No related tags found
No related merge requests found
...@@ -52,16 +52,17 @@ module Homebrew ...@@ -52,16 +52,17 @@ module Homebrew
return return
end end
if args.remaining.empty? if args.remaining.empty? && !args.desc?
puts Formatter.columns(Formula.full_names.sort) puts Formatter.columns(Formula.full_names.sort)
elsif args.desc? return
query = args.remaining.join(" ") end
string_or_regex = query_regexp(query)
Descriptions.search(string_or_regex, :desc).print
else
query = args.remaining.join(" ")
string_or_regex = query_regexp(query)
query = args.remaining.join(" ")
string_or_regex = query_regexp(query)
if args.desc?
search_descriptions(string_or_regex)
else
remote_results = search_taps(query, silent: true) remote_results = search_taps(query, silent: true)
local_formulae = search_formulae(string_or_regex) local_formulae = search_formulae(string_or_regex)
......
...@@ -3,24 +3,41 @@ require "hbc/cask_loader" ...@@ -3,24 +3,41 @@ require "hbc/cask_loader"
module Homebrew module Homebrew
module Search module Search
def search_casks(string_or_regex) module Extension
if string_or_regex.is_a?(String) && string_or_regex.match?(HOMEBREW_TAP_CASK_REGEX) def search_descriptions(string_or_regex)
return begin super
[Hbc::CaskLoader.load(string_or_regex).token]
rescue Hbc::CaskUnavailableError puts
[]
ohai "Casks"
Hbc::Cask.to_a.extend(Searchable)
.search(string_or_regex, &:name)
.each do |cask|
puts "#{Tty.bold}#{cask.token}:#{Tty.reset} #{cask.name.join(", ")}"
end end
end end
results = Hbc::Cask.search(string_or_regex, &:token).sort_by(&:token) def search_casks(string_or_regex)
if string_or_regex.is_a?(String) && string_or_regex.match?(HOMEBREW_TAP_CASK_REGEX)
return begin
[Hbc::CaskLoader.load(string_or_regex).token]
rescue Hbc::CaskUnavailableError
[]
end
end
results.map do |cask| results = Hbc::Cask.search(string_or_regex, &:token).sort_by(&:token)
if cask.installed?
pretty_installed(cask.token) results.map do |cask|
else if cask.installed?
cask.token pretty_installed(cask.token)
else
cask.token
end
end end
end end
end end
prepend Extension
end end
end end
...@@ -12,6 +12,11 @@ module Homebrew ...@@ -12,6 +12,11 @@ module Homebrew
raise "#{query} is not a valid regex." raise "#{query} is not a valid regex."
end end
def search_descriptions(string_or_regex)
ohai "Formulae"
Descriptions.search(string_or_regex, :desc).print
end
def search_taps(query, silent: false) def search_taps(query, silent: false)
if query.match?(Regexp.union(HOMEBREW_TAP_FORMULA_REGEX, HOMEBREW_TAP_CASK_REGEX)) if query.match?(Regexp.union(HOMEBREW_TAP_FORMULA_REGEX, HOMEBREW_TAP_CASK_REGEX))
_, _, query = query.split("/", 3) _, _, query = query.split("/", 3)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment