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
|
module Homebrew extend self
|
||||||
def outdated
|
def outdated
|
||||||
outdated_brews.each do |keg, name, version|
|
outdated_brews.each do |f|
|
||||||
if $stdout.tty? and not ARGV.flag? '--quiet'
|
if $stdout.tty? and not ARGV.flag? '--quiet'
|
||||||
versions = keg.cd{ Dir['*'] }.join(', ')
|
versions = f.rack.cd{ Dir['*'] }.join(', ')
|
||||||
puts "#{name} (#{versions} < #{version})"
|
puts "#{f.name} (#{versions} < #{f.version})"
|
||||||
else
|
else
|
||||||
puts name
|
puts f.name
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -22,7 +22,7 @@ module Homebrew extend self
|
|||||||
|
|
||||||
name = rack.basename.to_s
|
name = rack.basename.to_s
|
||||||
f = Formula.factory name rescue nil
|
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.compact
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -14,24 +14,23 @@ module Homebrew extend self
|
|||||||
outdated = if ARGV.named.empty?
|
outdated = if ARGV.named.empty?
|
||||||
Homebrew.outdated_brews
|
Homebrew.outdated_brews
|
||||||
else
|
else
|
||||||
ARGV.formulae.map do |f|
|
ARGV.formulae.each do |f|
|
||||||
raise "#{f} already upgraded" if f.installed?
|
raise "#{f} already upgraded" if f.installed?
|
||||||
raise "#{f} not installed" unless f.rack.exist? and not f.rack.children.empty?
|
raise "#{f} not installed" unless f.rack.exist? and not f.rack.children.empty?
|
||||||
[f.rack, f.name, f.version]
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if outdated.length > 1
|
if outdated.length > 1
|
||||||
oh1 "Upgrading #{outdated.length} outdated package#{outdated.length.plural_s}, with result:"
|
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
|
end
|
||||||
|
|
||||||
outdated.each do |rack, name, version|
|
outdated.each do |f|
|
||||||
installer = FormulaInstaller.new(Formula.factory(name))
|
installer = FormulaInstaller.new f
|
||||||
installer.show_header = false
|
installer.show_header = false
|
||||||
oh1 "Upgrading #{name}"
|
oh1 "Upgrading #{f.name}"
|
||||||
installer.install
|
installer.install
|
||||||
Keg.new("#{rack}/#{version}").unlink
|
Keg.new("#{f.rack}/#{f.version}").unlink
|
||||||
installer.caveats
|
installer.caveats
|
||||||
installer.finish # includes link step
|
installer.finish # includes link step
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user