aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Nagel2012-07-10 22:09:31 -0500
committerJack Nagel2012-08-18 11:12:10 -0500
commitc7cd378c6e0cf3feef1272e9b03ea5a8219d14d2 (patch)
treeefd6b0baeb48794e49506198872e1aa92b54d222
parent816348131bc85a27e64e78e992b2187f1a4bf8c5 (diff)
downloadhomebrew-c7cd378c6e0cf3feef1272e9b03ea5a8219d14d2.tar.bz2
outdated: use new version comparison machinery
-rw-r--r--Library/Homebrew/cmd/outdated.rb24
-rw-r--r--Library/Homebrew/cmd/upgrade.rb2
2 files changed, 13 insertions, 13 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
diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb
index 9a2448066..99954d91e 100644
--- a/Library/Homebrew/cmd/upgrade.rb
+++ b/Library/Homebrew/cmd/upgrade.rb
@@ -1,4 +1,3 @@
-require 'cmd/outdated'
require 'cmd/install'
class Fixnum
@@ -18,6 +17,7 @@ module Homebrew extend self
Homebrew.perform_preinstall_checks
outdated = if ARGV.named.empty?
+ require 'cmd/outdated'
Homebrew.outdated_brews
else
ARGV.formulae.select do |f|