aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd
diff options
context:
space:
mode:
authorJack Nagel2013-11-16 14:10:23 -0600
committerJack Nagel2013-11-16 14:10:25 -0600
commit6c252b59bdefd5702eea66223469a162cd0c9ffd (patch)
tree26514d259af83cdd169b1cb89b324ac70a2fd9a0 /Library/Homebrew/cmd
parent018e03b967987628879d9b9d5bcc661a880c18a3 (diff)
downloadhomebrew-6c252b59bdefd5702eea66223469a162cd0c9ffd.tar.bz2
Move brew-leaves into core
Closes #24371.
Diffstat (limited to 'Library/Homebrew/cmd')
-rw-r--r--Library/Homebrew/cmd/leaves.rb29
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