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
return
end
if args.remaining.empty?
if args.remaining.empty? && !args.desc?
puts Formatter.columns(Formula.full_names.sort)
elsif args.desc?
query = args.remaining.join(" ")
string_or_regex = query_regexp(query)
Descriptions.search(string_or_regex, :desc).print
else
query = args.remaining.join(" ")
string_or_regex = query_regexp(query)
return
end
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)
local_formulae = search_formulae(string_or_regex)
......
......@@ -3,24 +3,41 @@ require "hbc/cask_loader"
module Homebrew
module Search
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
[]
module Extension
def search_descriptions(string_or_regex)
super
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
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|
if cask.installed?
pretty_installed(cask.token)
else
cask.token
results = Hbc::Cask.search(string_or_regex, &:token).sort_by(&:token)
results.map do |cask|
if cask.installed?
pretty_installed(cask.token)
else
cask.token
end
end
end
end
prepend Extension
end
end
......@@ -12,6 +12,11 @@ module Homebrew
raise "#{query} is not a valid regex."
end
def search_descriptions(string_or_regex)
ohai "Formulae"
Descriptions.search(string_or_regex, :desc).print
end
def search_taps(query, silent: false)
if query.match?(Regexp.union(HOMEBREW_TAP_FORMULA_REGEX, HOMEBREW_TAP_CASK_REGEX))
_, _, 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