aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/outdated.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/cmd/outdated.rb')
-rw-r--r--Library/Homebrew/cmd/outdated.rb28
1 files changed, 28 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/outdated.rb b/Library/Homebrew/cmd/outdated.rb
new file mode 100644
index 000000000..37fba0f99
--- /dev/null
+++ b/Library/Homebrew/cmd/outdated.rb
@@ -0,0 +1,28 @@
+require 'formula'
+
+module Homebrew extend self
+ def outdated
+ outdated_brews.each do |keg, name, version|
+ if $stdout.tty? and not ARGV.flag? '--quiet'
+ versions = keg.cd{ Dir['*'] }.join(', ')
+ puts "#{name} (#{versions} < #{version})"
+ else
+ puts name
+ end
+ end
+ end
+
+ def outdated_brews
+ HOMEBREW_CELLAR.subdirs.map do |rack|
+ # Skip kegs with no versions installed
+ next unless rack.subdirs
+
+ # Skip HEAD formulae, consider them "evergreen"
+ next if rack.subdirs.map{ |keg| keg.basename.to_s }.include? "HEAD"
+
+ name = rack.basename.to_s
+ f = Formula.factory name rescue nil
+ [rack, name, f.version] if f and not f.installed?
+ end.compact
+ end
+end \ No newline at end of file