diff --git a/lib/cask/cli/search.rb b/lib/cask/cli/search.rb index 9de768186e..b1e481bdd8 100644 --- a/lib/cask/cli/search.rb +++ b/lib/cask/cli/search.rb @@ -2,9 +2,17 @@ class Cask::CLI::Search def self.run(*arguments) search_term, *rest = *arguments casks = {} - casks = Cask::CLI.nice_listing(Cask.all_titles.grep(/#{search_term}/i)) + if search_term =~ %r{^/(.*)/$} + search_regexp = $1 + casks = Cask.all_titles.grep(/#{search_regexp}/i) + else + all_titles = Cask.all_titles + no_hyphens_titles = all_titles.map {|t|t.gsub('-', '')} + no_hyphens_search_term = search_term.gsub('-', '') + casks = no_hyphens_titles.grep(/#{no_hyphens_search_term}/i) {|t| all_titles[no_hyphens_titles.index(t)]} + end unless casks.empty? - puts_columns casks + puts_columns Cask::CLI.nice_listing casks else puts "No cask found for \"#{search_term}\"." end