2018-09-03 19:39:07 +01:00
|
|
|
require "cask/cask"
|
|
|
|
require "cask/cask_loader"
|
2018-06-13 07:49:01 +02:00
|
|
|
|
|
|
|
module Homebrew
|
|
|
|
module Search
|
2018-06-18 16:09:13 +02:00
|
|
|
module Extension
|
|
|
|
def search_descriptions(string_or_regex)
|
|
|
|
super
|
|
|
|
|
|
|
|
puts
|
|
|
|
|
|
|
|
ohai "Casks"
|
2018-09-06 08:29:14 +02:00
|
|
|
Cask::Cask.to_a.extend(Searchable)
|
|
|
|
.search(string_or_regex, &:name)
|
|
|
|
.each do |cask|
|
2018-06-18 16:09:13 +02:00
|
|
|
puts "#{Tty.bold}#{cask.token}:#{Tty.reset} #{cask.name.join(", ")}"
|
2018-06-13 07:49:01 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2018-06-18 16:09:13 +02:00
|
|
|
def search_casks(string_or_regex)
|
|
|
|
if string_or_regex.is_a?(String) && string_or_regex.match?(HOMEBREW_TAP_CASK_REGEX)
|
|
|
|
return begin
|
2018-09-06 08:29:14 +02:00
|
|
|
[Cask::CaskLoader.load(string_or_regex).token]
|
|
|
|
rescue Cask::CaskUnavailableError
|
2018-06-18 16:09:13 +02:00
|
|
|
[]
|
|
|
|
end
|
|
|
|
end
|
2018-06-13 07:49:01 +02:00
|
|
|
|
2018-09-06 08:29:14 +02:00
|
|
|
results = Cask::Cask.search(string_or_regex, &:token).sort_by(&:token)
|
2018-06-18 16:09:13 +02:00
|
|
|
|
|
|
|
results.map do |cask|
|
|
|
|
if cask.installed?
|
|
|
|
pretty_installed(cask.token)
|
|
|
|
else
|
|
|
|
cask.token
|
|
|
|
end
|
2018-06-13 07:49:01 +02:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2018-06-18 16:09:13 +02:00
|
|
|
|
|
|
|
prepend Extension
|
2018-06-13 07:49:01 +02:00
|
|
|
end
|
|
|
|
end
|