outdated: use new version comparison machinery

This commit is contained in:
Jack Nagel 2012-07-10 22:09:31 -05:00
parent 31b61cb013
commit 93baea7e47
2 changed files with 13 additions and 13 deletions

View File

@ -1,11 +1,12 @@
require 'formula' require 'formula'
require 'keg'
module Homebrew extend self module Homebrew extend self
def outdated def outdated
outdated_brews.each do |f| outdated_brews do |f|
if $stdout.tty? and not ARGV.flag? '--quiet' if $stdout.tty? and not ARGV.flag? '--quiet'
versions = f.rack.cd{ Dir['*'] }.join(', ') versions = f.rack.subdirs.map { |d| Keg.new(d) }.map { |keg| keg.basename }
puts "#{f.name} (#{versions} < #{f.version})" puts "#{f.name} (#{versions*', '} < #{f.version})"
else else
puts f.name puts f.name
end end
@ -13,16 +14,15 @@ module Homebrew extend self
end end
def outdated_brews def outdated_brews
HOMEBREW_CELLAR.subdirs.map do |rack| HOMEBREW_CELLAR.subdirs.reject { |d| d.subdirs.empty? }.map do |rack|
# Skip kegs with no versions installed f = Formula.factory(rack.basename.to_s) rescue nil
next unless rack.subdirs next if f.nil?
# Skip HEAD formulae, consider them "evergreen" kegs = rack.subdirs.map { |d| Keg.new(d) }
next if rack.subdirs.map{ |keg| keg.basename.to_s }.include? "HEAD" unless kegs.any? { |keg| keg.version >= f.version }
yield f if block_given?
name = rack.basename.to_s f
f = Formula.factory name rescue nil end
f if f and not f.installed?
end.compact end.compact
end end
end end

View File

@ -1,4 +1,3 @@
require 'cmd/outdated'
require 'cmd/install' require 'cmd/install'
class Fixnum class Fixnum
@ -18,6 +17,7 @@ module Homebrew extend self
Homebrew.perform_preinstall_checks Homebrew.perform_preinstall_checks
outdated = if ARGV.named.empty? outdated = if ARGV.named.empty?
require 'cmd/outdated'
Homebrew.outdated_brews Homebrew.outdated_brews
else else
ARGV.formulae.select do |f| ARGV.formulae.select do |f|