diff options
| author | Mike McQuaid | 2015-11-27 15:11:00 +0000 |
|---|---|---|
| committer | Mike McQuaid | 2015-11-27 16:52:54 +0000 |
| commit | 6054666fa6cbff2c8d535c32de128c6e0bb3f8e1 (patch) | |
| tree | 84b3fcbb5c31ad43a7823f5a0b0b3a4239fdff17 /Library/Homebrew/cmd/outdated.rb | |
| parent | 30d8084643c3524f2c3c4de884c3c5c0c81b95f7 (diff) | |
| download | brew-6054666fa6cbff2c8d535c32de128c6e0bb3f8e1.tar.bz2 | |
formula: refactor outdated handling, add to hash.
Diffstat (limited to 'Library/Homebrew/cmd/outdated.rb')
| -rw-r--r-- | Library/Homebrew/cmd/outdated.rb | 38 |
1 files changed, 5 insertions, 33 deletions
diff --git a/Library/Homebrew/cmd/outdated.rb b/Library/Homebrew/cmd/outdated.rb index 7a199fcae..2c3316f85 100644 --- a/Library/Homebrew/cmd/outdated.rb +++ b/Library/Homebrew/cmd/outdated.rb @@ -13,41 +13,12 @@ module Homebrew Homebrew.failed = ARGV.resolved_formulae.any? && outdated.any? end - def outdated_brews(formulae) - formulae.map do |f| - all_versions = [] - older_or_same_tap_versions = [] - - if f.oldname && !f.rack.exist? && (dir = HOMEBREW_CELLAR/f.oldname).directory? && - !dir.subdirs.empty? && f.tap == Tab.for_keg(dir.subdirs.first).tap - raise Migrator::MigrationNeededError.new(f) - end - - f.rack.subdirs.each do |keg_dir| - keg = Keg.new keg_dir - version = keg.version - all_versions << version - older_version = f.pkg_version <= version - - tap = Tab.for_keg(keg).tap - if tap.nil? || f.tap == tap || older_version - older_or_same_tap_versions << version - end - end - - if older_or_same_tap_versions.all? { |version| f.pkg_version > version } - yield f, all_versions if block_given? - f - end - end.compact - end - def print_outdated(formulae) verbose = ($stdout.tty? || ARGV.verbose?) && !ARGV.flag?("--quiet") - outdated_brews(formulae) do |f, versions| + formulae.select(&:outdated?).each do |f| if verbose - puts "#{f.full_name} (#{versions*", "} < #{f.pkg_version})" + puts "#{f.full_name} (#{f.outdated_versions*", "} < #{f.pkg_version})" else puts f.full_name end @@ -56,9 +27,10 @@ module Homebrew def print_outdated_json(formulae) json = [] - outdated = outdated_brews(formulae) do |f, versions| + outdated = formulae.select(&:outdated?).each do |f| + json << { :name => f.full_name, - :installed_versions => versions.collect(&:to_s), + :installed_versions => f.outdated_versions.collect(&:to_s), :current_version => f.pkg_version.to_s } end puts Utils::JSON.dump(json) |
