diff options
| author | Mike McQuaid | 2016-09-19 15:22:24 +0100 |
|---|---|---|
| committer | GitHub | 2016-09-19 15:22:24 +0100 |
| commit | c45119de75e70f32e3b3fdcccb210a88282a2f26 (patch) | |
| tree | 9f3bd4abbc80df1ca391537da0c195281e9a94a7 /Library/Homebrew/cmd/outdated.rb | |
| parent | 7ed7e3cd1a22a258ab8336b1f34b258ab8774e04 (diff) | |
| parent | d89a696d83cd325656e30a99cb4ba8342ffb39c9 (diff) | |
| download | brew-c45119de75e70f32e3b3fdcccb210a88282a2f26.tar.bz2 | |
Merge pull request #971 from penman/follow_alias
Make `brew upgrade` and `brew outdated` follow alias changes
Diffstat (limited to 'Library/Homebrew/cmd/outdated.rb')
| -rw-r--r-- | Library/Homebrew/cmd/outdated.rb | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/Library/Homebrew/cmd/outdated.rb b/Library/Homebrew/cmd/outdated.rb index 7afa41df4..dfb64a282 100644 --- a/Library/Homebrew/cmd/outdated.rb +++ b/Library/Homebrew/cmd/outdated.rb @@ -43,15 +43,28 @@ module Homebrew outdated_formulae.each do |f| if verbose - outdated_versions = f.outdated_versions(fetch_head: fetch_head) - current_version = if f.head? && outdated_versions.any? { |v| v.to_s == f.pkg_version.to_s } + outdated_kegs = f.outdated_kegs(fetch_head: fetch_head) + + current_version = if f.alias_changed? + latest = f.latest_formula + "#{latest.name} (#{latest.pkg_version})" + elsif f.head? && outdated_kegs.any? { |k| k.version.to_s == f.pkg_version.to_s } + # There is a newer HEAD but the version number has not changed. "latest HEAD" else f.pkg_version.to_s end - puts "#{f.full_name} (#{outdated_versions.join(", ")}) < #{current_version}" + + outdated_versions = outdated_kegs. + group_by { |keg| Formulary.from_keg(keg) }. + sort_by { |formula, kegs| formula.full_name }. + map do |formula, kegs| + "#{formula.full_name} (#{kegs.map(&:version).join(", ")})" + end.join(", ") + + puts "#{outdated_versions} < #{current_version}" else - puts f.full_name + puts f.full_installed_specified_name end end end @@ -62,7 +75,7 @@ module Homebrew outdated_formulae = formulae.select { |f| f.outdated?(fetch_head: fetch_head) } outdated = outdated_formulae.each do |f| - outdated_versions = f.outdated_versions(fetch_head: fetch_head) + outdated_versions = f.outdated_kegs(fetch_head: fetch_head).map(&:version) current_version = if f.head? && outdated_versions.any? { |v| v.to_s == f.pkg_version.to_s } "HEAD" else |
