diff options
Diffstat (limited to 'Library/Homebrew')
| -rw-r--r-- | Library/Homebrew/cmd/leaves.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/leaves.rb b/Library/Homebrew/cmd/leaves.rb new file mode 100644 index 000000000..bffa332d6 --- /dev/null +++ b/Library/Homebrew/cmd/leaves.rb @@ -0,0 +1,29 @@ +require 'formula' +require 'tab' +require 'set' + +module Homebrew extend self + def leaves + installed = Formula.installed + deps_of_installed = Set.new + + 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 + end +end |
