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()