aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Contributions
diff options
context:
space:
mode:
authorJack Nagel2013-11-16 14:10:23 -0600
committerJack Nagel2013-11-16 14:10:23 -0600
commit6eef992741028820818cf1f50d6ee7f3f14bc7ff (patch)
treef5297387293d63d97c3240d3572f170264ac7195 /Library/Contributions
parentd1cfd02e274a3e272a09e073f7b72d0b7b6a0f57 (diff)
downloadbrew-6eef992741028820818cf1f50d6ee7f3f14bc7ff.tar.bz2
Greatly simplify the implementation of brew-leaves
Diffstat (limited to 'Library/Contributions')
-rwxr-xr-xLibrary/Contributions/cmd/brew-leaves.rb25
1 files changed, 6 insertions, 19 deletions
diff --git a/Library/Contributions/cmd/brew-leaves.rb b/Library/Contributions/cmd/brew-leaves.rb
index 38d023cf7..75476d27b 100755
--- a/Library/Contributions/cmd/brew-leaves.rb
+++ b/Library/Contributions/cmd/brew-leaves.rb
@@ -3,25 +3,12 @@
# See: http://github.com/mxcl/homebrew/issues/issue/1438
require 'formula'
+require 'set'
-def get_used_by(formulae)
- used_by = {}
- formulae.each do |f|
- f.deps.each do |dep|
- _deps = used_by[dep.to_s] || []
- _deps << f.name unless _deps.include? f.name
- used_by[dep.to_s] = _deps
- end
- end
+deps_of_installed = Set.new
- return used_by
-end
-
-installed = Formula.installed
-names = installed.map(&:name)
-deps_graph = get_used_by(installed)
-
-names.each do |name|
- deps = deps_graph[name] || []
- puts name unless deps.any? { |dep| names.include? dep.to_s }
+Formula.installed.each do |f|
+ deps_of_installed.merge f.deps.map(&:name)
+end.each do |f|
+ puts f.name unless deps_of_installed.include? f.name
end