Summarised listings with brew list
I'm trying to only show the interesting stuff. You can see a full listing with brew -v list, or by piping to other commands. Tell me if you hate it or love it.
This commit is contained in:
parent
bfb3e1bfe0
commit
bab6515668
@ -244,6 +244,67 @@ def fix_PATH
|
|||||||
end
|
end
|
||||||
ENV['PATH'] = paths*':'
|
ENV['PATH'] = paths*':'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
########################################################## class PrettyListing
|
||||||
|
class PrettyListing
|
||||||
|
def initialize path
|
||||||
|
Pathname.new(path).children.sort{ |a,b| a.to_s.downcase <=> b.to_s.downcase }.each do |pn|
|
||||||
|
case pn.basename.to_s
|
||||||
|
when 'bin', 'sbin'
|
||||||
|
pn.find { |pnn| puts pnn unless pnn.directory? }
|
||||||
|
when 'lib'
|
||||||
|
print_dir pn do |pnn|
|
||||||
|
# dylibs have multiple symlinks and we don't care about them
|
||||||
|
(pnn.extname == '.dylib' or pnn.extname == '.pc') and not pnn.symlink?
|
||||||
|
end
|
||||||
|
else
|
||||||
|
print_dir pn
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
def print_dir root
|
||||||
|
return unless root.directory?
|
||||||
|
|
||||||
|
dirs = []
|
||||||
|
remaining_root_files = []
|
||||||
|
other = ''
|
||||||
|
|
||||||
|
root.children.sort.each do |pn|
|
||||||
|
if pn.directory?
|
||||||
|
dirs << pn
|
||||||
|
elsif block_given? and yield pn
|
||||||
|
puts pn
|
||||||
|
other = 'other '
|
||||||
|
else
|
||||||
|
remaining_root_files << pn
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
dirs.each do |d|
|
||||||
|
files = []
|
||||||
|
d.find { |pn| files << pn unless pn.directory? }
|
||||||
|
print_remaining_files files, d
|
||||||
|
end
|
||||||
|
|
||||||
|
print_remaining_files remaining_root_files, root, other
|
||||||
|
end
|
||||||
|
|
||||||
|
def print_remaining_files files, root, other = ''
|
||||||
|
case files.length
|
||||||
|
when 0
|
||||||
|
# noop
|
||||||
|
when 1
|
||||||
|
puts *files
|
||||||
|
else
|
||||||
|
puts "#{root} (#{files.length} #{other}files)"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
################################################################ class Cleaner
|
################################################################ class Cleaner
|
||||||
class Cleaner
|
class Cleaner
|
||||||
def initialize f
|
def initialize f
|
||||||
|
|||||||
4
bin/brew
4
bin/brew
@ -47,8 +47,10 @@ begin
|
|||||||
if ARGV.named_empty?
|
if ARGV.named_empty?
|
||||||
ENV['CLICOLOR']=nil
|
ENV['CLICOLOR']=nil
|
||||||
exec 'ls', *ARGV.options<<HOMEBREW_CELLAR
|
exec 'ls', *ARGV.options<<HOMEBREW_CELLAR
|
||||||
else
|
elsif ARGV.verbose?
|
||||||
exec "find", *ARGV.kegs+%w[-not -type d -print]
|
exec "find", *ARGV.kegs+%w[-not -type d -print]
|
||||||
|
else
|
||||||
|
ARGV.kegs.each { |keg| PrettyListing.new keg }
|
||||||
end
|
end
|
||||||
|
|
||||||
when 'search', '-S'
|
when 'search', '-S'
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user