mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Return Formula objects from outdated_brews
Previously, `outdated_brews` returned a list of lists---each containing three components of a Formula object: - f.rack - f.name - f.version Frequently more information is required which necessitates back-casting from `name` to a Formula object---simpy returning formula objects removes this step.
This commit is contained in:
parent
94dba21f7d
commit
2492c6564d
@ -2,12 +2,12 @@ require 'formula'
|
||||
|
||||
module Homebrew extend self
|
||||
def outdated
|
||||
outdated_brews.each do |keg, name, version|
|
||||
outdated_brews.each do |f|
|
||||
if $stdout.tty? and not ARGV.flag? '--quiet'
|
||||
versions = keg.cd{ Dir['*'] }.join(', ')
|
||||
puts "#{name} (#{versions} < #{version})"
|
||||
versions = f.rack.cd{ Dir['*'] }.join(', ')
|
||||
puts "#{f.name} (#{versions} < #{f.version})"
|
||||
else
|
||||
puts name
|
||||
puts f.name
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -22,7 +22,7 @@ module Homebrew extend self
|
||||
|
||||
name = rack.basename.to_s
|
||||
f = Formula.factory name rescue nil
|
||||
[rack, name, f.version] if f and not f.installed?
|
||||
f if f and not f.installed?
|
||||
end.compact
|
||||
end
|
||||
end
|
@ -14,24 +14,23 @@ module Homebrew extend self
|
||||
outdated = if ARGV.named.empty?
|
||||
Homebrew.outdated_brews
|
||||
else
|
||||
ARGV.formulae.map do |f|
|
||||
ARGV.formulae.each do |f|
|
||||
raise "#{f} already upgraded" if f.installed?
|
||||
raise "#{f} not installed" unless f.rack.exist? and not f.rack.children.empty?
|
||||
[f.rack, f.name, f.version]
|
||||
end
|
||||
end
|
||||
|
||||
if outdated.length > 1
|
||||
oh1 "Upgrading #{outdated.length} outdated package#{outdated.length.plural_s}, with result:"
|
||||
puts outdated.map{ |_, name, version| "#{name} #{version}" } * ", "
|
||||
puts outdated.map{ |f| "#{f.name} #{f.version}" } * ", "
|
||||
end
|
||||
|
||||
outdated.each do |rack, name, version|
|
||||
installer = FormulaInstaller.new(Formula.factory(name))
|
||||
outdated.each do |f|
|
||||
installer = FormulaInstaller.new f
|
||||
installer.show_header = false
|
||||
oh1 "Upgrading #{name}"
|
||||
oh1 "Upgrading #{f.name}"
|
||||
installer.install
|
||||
Keg.new("#{rack}/#{version}").unlink
|
||||
Keg.new("#{f.rack}/#{f.version}").unlink
|
||||
installer.caveats
|
||||
installer.finish # includes link step
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user