From 4366b7956f068f2a582c7899187a4265912b6b39 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Sat, 16 Nov 2013 14:10:23 -0600 Subject: [PATCH] Make brew-leaves respect optional deps --- Library/Contributions/cmd/brew-leaves.rb | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Library/Contributions/cmd/brew-leaves.rb b/Library/Contributions/cmd/brew-leaves.rb index 75476d27bc..b1296598b2 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