| 
									
										
										
										
											2015-05-05 15:29:01 -07:00
										 |  |  | require "descriptions" | 
					
						
							|  |  |  | require "cmd/search" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Homebrew | 
					
						
							|  |  |  |   def desc | 
					
						
							| 
									
										
										
										
											2015-09-09 13:00:43 +08:00
										 |  |  |     search_type = [] | 
					
						
							|  |  |  |     search_type << :either if ARGV.flag? "--search" | 
					
						
							|  |  |  |     search_type << :name   if ARGV.flag? "--name" | 
					
						
							|  |  |  |     search_type << :desc   if ARGV.flag? "--description" | 
					
						
							| 
									
										
										
										
											2015-05-05 15:29:01 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-09 13:00:43 +08:00
										 |  |  |     if search_type.empty? | 
					
						
							|  |  |  |       raise FormulaUnspecifiedError if ARGV.named.empty? | 
					
						
							| 
									
										
										
										
											2015-09-09 15:21:18 +08:00
										 |  |  |       desc = {} | 
					
						
							|  |  |  |       ARGV.formulae.each { |f| desc[f.full_name] = f.desc } | 
					
						
							|  |  |  |       results = Descriptions.new(desc) | 
					
						
							|  |  |  |       results.print | 
					
						
							| 
									
										
										
										
											2015-09-09 13:00:43 +08:00
										 |  |  |     elsif search_type.size > 1
 | 
					
						
							|  |  |  |       odie "Pick one, and only one, of -s/--search, -n/--name, or -d/--description." | 
					
						
							|  |  |  |     else | 
					
						
							| 
									
										
										
										
											2015-05-05 15:29:01 -07:00
										 |  |  |       if arg = ARGV.named.first | 
					
						
							|  |  |  |         regex = Homebrew::query_regexp(arg) | 
					
						
							| 
									
										
										
										
											2015-09-09 13:00:43 +08:00
										 |  |  |         results = Descriptions.search(regex, search_type.first) | 
					
						
							|  |  |  |         results.print | 
					
						
							| 
									
										
										
										
											2015-05-05 15:29:01 -07:00
										 |  |  |       else | 
					
						
							|  |  |  |         odie "You must provide a search term." | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |