aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/outdated.rb
diff options
context:
space:
mode:
authorJack Nagel2012-07-10 22:09:31 -0500
committerJack Nagel2012-08-18 11:12:10 -0500
commit93baea7e47627cdd309715143b7d125966a28df5 (patch)
tree1f8bd19aaaefbd981f55c0572f1ddb2059631fee /Library/Homebrew/cmd/outdated.rb
parent31b61cb01342b5a2079cb447693d003bdf455a65 (diff)
downloadbrew-93baea7e47627cdd309715143b7d125966a28df5.tar.bz2
outdated: use new version comparison machinery
Diffstat (limited to 'Library/Homebrew/cmd/outdated.rb')
-rw-r--r--Library/Homebrew/cmd/outdated.rb24
1 files changed, 12 insertions, 12 deletions
diff --git a/Library/Homebrew/cmd/outdated.rb b/Library/Homebrew/cmd/outdated.rb
index 40aa7a470..5f655b3a4 100644
--- a/Library/Homebrew/cmd/outdated.rb
+++ b/Library/Homebrew/cmd/outdated.rb
@@ -1,11 +1,12 @@
require 'formula'
+require 'keg'
module Homebrew extend self
def outdated
- outdated_brews.each do |f|
+ outdated_brews do |f|
if $stdout.tty? and not ARGV.flag? '--quiet'
- versions = f.rack.cd{ Dir['*'] }.join(', ')
- puts "#{f.name} (#{versions} < #{f.version})"
+ versions = f.rack.subdirs.map { |d| Keg.new(d) }.map { |keg| keg.basename }
+ puts "#{f.name} (#{versions*', '} < #{f.version})"
else
puts f.name
end
@@ -13,16 +14,15 @@ module Homebrew extend self
end
def outdated_brews
- HOMEBREW_CELLAR.subdirs.map do |rack|
- # Skip kegs with no versions installed
- next unless rack.subdirs
+ HOMEBREW_CELLAR.subdirs.reject { |d| d.subdirs.empty? }.map do |rack|
+ f = Formula.factory(rack.basename.to_s) rescue nil
+ next if f.nil?
- # 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
- f if f and not f.installed?
+ kegs = rack.subdirs.map { |d| Keg.new(d) }
+ unless kegs.any? { |keg| keg.version >= f.version }
+ yield f if block_given?
+ f
+ end
end.compact
end
end