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
|
||||
ENV['PATH'] = paths*':'
|
||||
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
|
||||
def initialize f
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user