aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Contributions/examples/brew-leaves.rb
blob: d24709229c464c85c0ceb230475dccda0978bc5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# Outputs formulas that are installed but are not a dependency for
# any other installed formula.
# See: http://github.com/mxcl/homebrew/issues/issue/1438

require 'formula'

def get_used_by
  used_by = {}
  Formula.all.each do |f|
    next if f.deps == nil

    f.deps.each do |dep|
      _deps = used_by[dep] || []
      _deps << f.name unless _deps.include? f.name
      used_by[dep] = _deps
    end
  end

  return used_by
end

deps_graph = get_used_by()
installed = HOMEBREW_CELLAR.children.select { |pn| pn.directory? }.collect { |pn| pn.basename.to_s }
installed.each do |name|
  deps = deps_graph[name] || []
  puts name unless deps.any? { |dep| installed.include? dep }
end