2010-09-25 12:49:09 +01:00
|
|
|
require 'formula'
|
|
|
|
|
2011-11-27 22:40:59 -06:00
|
|
|
def recursive_deps_tree f, level
|
|
|
|
f.deps.each do |dep|
|
2013-03-30 11:41:06 +01:00
|
|
|
puts "| "*(level-1)+"|- "+dep.to_s
|
2011-11-27 22:40:59 -06:00
|
|
|
recursive_deps_tree(Formula.factory(dep), level+1)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2010-09-11 20:22:54 +01:00
|
|
|
module Homebrew extend self
|
|
|
|
def deps
|
2013-03-05 18:02:22 -08:00
|
|
|
if ARGV.include? '--installed'
|
|
|
|
Formula.installed.each do |f|
|
|
|
|
puts "#{f.name}: #{f.deps*' '}"
|
|
|
|
end
|
|
|
|
elsif ARGV.include? '--all'
|
2010-09-25 12:49:09 +01:00
|
|
|
Formula.each do |f|
|
2011-06-15 09:02:18 -07:00
|
|
|
puts "#{f.name}: #{f.deps*' '}"
|
2010-09-11 20:22:54 +01:00
|
|
|
end
|
2011-11-27 22:40:59 -06:00
|
|
|
elsif ARGV.include? '--tree'
|
2012-02-04 00:01:29 -06:00
|
|
|
raise FormulaUnspecifiedError if ARGV.named.empty?
|
2011-11-27 22:40:59 -06:00
|
|
|
ARGV.formulae.each do |f|
|
|
|
|
puts f
|
|
|
|
recursive_deps_tree(f, 1)
|
|
|
|
puts
|
|
|
|
end
|
2010-09-11 20:22:54 +01:00
|
|
|
else
|
2012-02-04 00:01:29 -06:00
|
|
|
raise FormulaUnspecifiedError if ARGV.named.empty?
|
2013-01-13 19:51:19 -06:00
|
|
|
all_deps = ARGV.formulae.map do |f|
|
2013-01-23 00:26:29 -06:00
|
|
|
ARGV.one? ? f.deps : f.recursive_dependencies
|
2013-01-13 19:51:19 -06:00
|
|
|
end.intersection.map(&:name)
|
2011-04-13 13:10:25 -07:00
|
|
|
all_deps.sort! unless ARGV.include? "-n"
|
|
|
|
puts all_deps
|
2010-09-11 20:22:54 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2010-09-25 12:49:09 +01:00
|
|
|
|
|
|
|
class Array
|
|
|
|
def intersection
|
|
|
|
a = []
|
|
|
|
each{ |b| a |= b }
|
|
|
|
each{ |c| a &= c }
|
|
|
|
a
|
|
|
|
end
|
|
|
|
end
|