aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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|