`brew search' command

Example usage:
  brew search w  # formulae containing w
  brew search ^w # formulae starting with w

No parameters lists all packages.

Also adds puts_columns to util, and uses it for output.

Signed Off By: Max Howell <max@methylblue.com>

I changed the command from 'available' to search because this is more similar
to how other tools call this function.

The short form is -S, which is the "pacman" tool equivalent.
This commit is contained in:
Andre Arko 2009-09-04 15:22:25 -07:00 committed by Max Howell
parent a2cd3367a8
commit c4041f4492
3 changed files with 17 additions and 11 deletions

View File

@ -88,6 +88,7 @@ Commands:
list formula ...
link formula ...
home formula ...
available [formula or regex]
info [formula] [--github]
make url
prune

View File

@ -74,3 +74,9 @@ end
def curl url, *args
safe_system 'curl', '-f#LA', HOMEBREW_USER_AGENT, url, *args
end
def puts_columns items, cols = 4
items = items.join("\n") if items.is_a?(Array)
width=`stty size`.chomp.split(" ").last
IO.popen("pr -#{cols} -t", "w"){|io| io.write(items) }
end

View File

@ -60,6 +60,10 @@ begin
exec "find", *ARGV.kegs+%w[-not -type d -print]
end
when 'search', '-S'
formulae = (HOMEBREW_PREFIX+'Library'+'Formula').children.sort.map{|f| f.basename('.rb') }
puts_columns formulae.grep(Regexp.new(ARGV.first || ''))
when 'edit'
if ARGV.named_empty?
exec "mate", *Dir["#{HOMEBREW_PREFIX}/Library/*"]<<
@ -71,12 +75,7 @@ begin
when 'install'
if ARGV.named_empty?
# TODO I tried to columnise it using the 'column' utility but it uses
# tabs rather than spaces and the output looked wrong
puts "You must specify a formula. The following are available:" unless ARGV.quieter?
(HOMEBREW_PREFIX+'Library'+'Formula').children.sort.each do |f|
puts f.basename('.rb')
end
puts "You must specify a formula. Search for available formulae with `brew search'."
exit 0
end