aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew
diff options
context:
space:
mode:
authorJack Nagel2013-11-16 14:10:23 -0600
committerJack Nagel2013-11-16 14:10:25 -0600
commit674d041d804be070c5a6836ae03ce573c68ece84 (patch)
tree2e123e1061756b6ac19ec9985b992ff766e693f1 /Library/Homebrew
parent4366b7956f068f2a582c7899187a4265912b6b39 (diff)
downloadbrew-674d041d804be070c5a6836ae03ce573c68ece84.tar.bz2
Move brew-leaves into core
Closes Homebrew/homebrew#24371.
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