brew-deps: improved --tree formatting

Closes Homebrew/homebrew#40018.

Signed-off-by: Baptiste Fontaine <batifon@yahoo.fr>
This commit is contained in:
Baptiste Fontaine 2015-05-23 16:07:10 +02:00
parent 473512e10f
commit 9e6934d00c

View File

@ -1,3 +1,4 @@
# encoding: UTF-8
require 'formula'
require 'ostruct'
@ -63,18 +64,25 @@ module Homebrew
def puts_deps_tree(formulae)
formulae.each do |f|
puts f.full_name
recursive_deps_tree(f, 1)
recursive_deps_tree(f, "")
puts
end
end
def recursive_deps_tree f, level
f.requirements.select(&:default_formula?).each do |req|
puts "| "*(level-1) + "|- :#{req.to_dependency.name}"
def recursive_deps_tree f, prefix
reqs = f.requirements.select(&:default_formula?)
max = reqs.length - 1
reqs.each_with_index do |req, i|
chr = i == max ? "└──" : "├──"
puts prefix + "#{chr} :#{req.to_dependency.name}"
end
f.deps.default.each do |dep|
puts "| "*(level-1) + "|- #{dep.name}"
recursive_deps_tree(Formulary.factory(dep.name), level+1)
deps = f.deps.default
max = deps.length - 1
deps.each_with_index do |dep, i|
chr = i == max ? "└──" : "├──"
prefix_ext = i == max ? " " : "| "
puts prefix + "#{chr} #{dep.name}"
recursive_deps_tree(Formulary.factory(dep.name), prefix + prefix_ext)
end
end
end