diff options
| author | Jack Nagel | 2012-07-10 22:09:31 -0500 |
|---|---|---|
| committer | Jack Nagel | 2012-08-18 11:12:10 -0500 |
| commit | c7cd378c6e0cf3feef1272e9b03ea5a8219d14d2 (patch) | |
| tree | efd6b0baeb48794e49506198872e1aa92b54d222 /Library/Homebrew/cmd/outdated.rb | |
| parent | 816348131bc85a27e64e78e992b2187f1a4bf8c5 (diff) | |
| download | homebrew-c7cd378c6e0cf3feef1272e9b03ea5a8219d14d2.tar.bz2 | |
outdated: use new version comparison machinery
Diffstat (limited to 'Library/Homebrew/cmd/outdated.rb')
| -rw-r--r-- | Library/Homebrew/cmd/outdated.rb | 24 |
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 |
