blob: dab18fc915a9f98c7e4862295f64c16971083a57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
  | 
require "descriptions"
require "cmd/search"
module Homebrew
  def desc
    search_type = []
    search_type << :either if ARGV.flag? "--search"
    search_type << :name   if ARGV.flag? "--name"
    search_type << :desc   if ARGV.flag? "--description"
    if search_type.empty?
      raise FormulaUnspecifiedError if ARGV.named.empty?
      Descriptions.named(ARGV.formulae.map(&:full_name)).print
    elsif search_type.size > 1
      odie "Pick one, and only one, of -s/--search, -n/--name, or -d/--description."
    else
      if arg = ARGV.named.first
        regex = Homebrew::query_regexp(arg)
        results = Descriptions.search(regex, search_type.first)
        results.print
      else
        odie "You must provide a search term."
      end
    end
  end
end
  |