From b877bc52d008f3e67735cf97cb6c1f7695f103a7 Mon Sep 17 00:00:00 2001 From: Adam Vandenberg Date: Sun, 15 Aug 2010 15:11:09 -0700 Subject: [PATCH] External command "brew missing" This will print installed brews that are missing deps. --- .../Contributions/examples/brew-missing.rb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 Library/Contributions/examples/brew-missing.rb diff --git a/Library/Contributions/examples/brew-missing.rb b/Library/Contributions/examples/brew-missing.rb new file mode 100755 index 0000000000..980597cede --- /dev/null +++ b/Library/Contributions/examples/brew-missing.rb @@ -0,0 +1,26 @@ +require "formula" +require 'formula_installer' + +def main + # Names of outdated brews; they count as installed. + outdated = outdated_brews.select {|b| b[1] } + + HOMEBREW_CELLAR.subdirs.each do |keg| + next unless keg.subdirs + if ((f = Formula.factory(keg.basename.to_s)).installed? rescue false) + f_deps = FormulaInstaller.expand_deps(f).collect{|g| g.name}.uniq + next if f_deps.empty? + + missing_deps = [] + f_deps.each do |dep_name| + unless Formula.factory(dep_name).installed? or outdated.include?(dep_name) + missing_deps << dep_name + end + end + + puts "#{f.name}: #{missing_deps.join(', ')}" unless missing_deps.empty? + end + end +end + +main()