aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/missing.rb
diff options
context:
space:
mode:
authorJack Nagel2013-01-23 00:26:28 -0600
committerJack Nagel2013-01-26 12:14:48 -0600
commit85a77eb1d0426bed7b2f1ed72c422d846db300df (patch)
tree213de69edc337cf59b9c741351431401802612be /Library/Homebrew/cmd/missing.rb
parent775184240d039973f3cd0751eb648d8840f70276 (diff)
downloadhomebrew-85a77eb1d0426bed7b2f1ed72c422d846db300df.tar.bz2
missing: ignore unused optional and recommended deps
Diffstat (limited to 'Library/Homebrew/cmd/missing.rb')
-rw-r--r--Library/Homebrew/cmd/missing.rb24
1 files changed, 12 insertions, 12 deletions
diff --git a/Library/Homebrew/cmd/missing.rb b/Library/Homebrew/cmd/missing.rb
index 7f4417081..ea0df4a1d 100644
--- a/Library/Homebrew/cmd/missing.rb
+++ b/Library/Homebrew/cmd/missing.rb
@@ -1,21 +1,21 @@
require 'formula'
+require 'tab'
module Homebrew extend self
- def installed_brews
- formulae = []
- HOMEBREW_CELLAR.subdirs.each do |rack|
- f = Formula.factory rack.basename.to_s rescue nil
- formulae << f if f and f.rack.exist? and f.rack.subdirs.length > 0
- end
- formulae
- end
-
def missing_deps ff
missing = {}
ff.each do |f|
- missing_deps = f.recursive_deps.uniq.reject do |dep|
- dep.rack.exist? and dep.rack.subdirs.length > 0
+ missing_deps = f.recursive_dependencies do |dependent, dep|
+ if dep.optional? || dep.recommended?
+ tab = Tab.for_formula(dependent)
+ Dependency.prune unless tab.with?(dep.name)
+ elsif dep.build?
+ Dependency.prune
end
+ end
+
+ missing_deps.map!(&:to_formula)
+ missing_deps.reject! { |d| d.rack.exist? && d.rack.subdirs.length > 0 }
unless missing_deps.empty?
yield f.name, missing_deps if block_given?
@@ -29,7 +29,7 @@ module Homebrew extend self
return unless HOMEBREW_CELLAR.exist?
ff = if ARGV.named.empty?
- installed_brews
+ Formula.installed
else
ARGV.formulae
end