aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorJack Nagel2013-11-16 14:10:23 -0600
committerJack Nagel2013-11-16 14:10:23 -0600
commit018e03b967987628879d9b9d5bcc661a880c18a3 (patch)
tree76d0c3fc3e572cbc26e363175b7b70e7582a157a /Library
parent6d04d410053b436b282388590e31d37edd34ff8d (diff)
downloadhomebrew-018e03b967987628879d9b9d5bcc661a880c18a3.tar.bz2
Make brew-leaves respect optional deps
Diffstat (limited to 'Library')
-rwxr-xr-xLibrary/Contributions/cmd/brew-leaves.rb21
1 files changed, 18 insertions, 3 deletions
diff --git a/Library/Contributions/cmd/brew-leaves.rb b/Library/Contributions/cmd/brew-leaves.rb
index 75476d27b..b1296598b 100755
--- a/Library/Contributions/cmd/brew-leaves.rb
+++ b/Library/Contributions/cmd/brew-leaves.rb
@@ -4,11 +4,26 @@
require 'formula'
require 'set'
+require 'tab'
+installed = Formula.installed
deps_of_installed = Set.new
-Formula.installed.each do |f|
- deps_of_installed.merge f.deps.map(&:name)
-end.each do |f|
+installed.each do |f|
+ deps = []
+
+ f.deps.each do |dep|
+ if dep.optional? || dep.recommended?
+ tab = Tab.for_formula(f)
+ deps << dep.name if tab.with?(dep.name)
+ else
+ deps << dep.name
+ end
+ end
+
+ deps_of_installed.merge(deps)
+end
+
+installed.each do |f|
puts f.name unless deps_of_installed.include? f.name
end