aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew')
-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