| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: false | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											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 |