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
commit4366b7956f068f2a582c7899187a4265912b6b39 (patch)
tree1642d9afcbc1e08bf39ae572de7ff95e6f15c79d /Library
parent6eef992741028820818cf1f50d6ee7f3f14bc7ff (diff)
downloadbrew-4366b7956f068f2a582c7899187a4265912b6b39.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