diff options
Diffstat (limited to 'Library/Homebrew/cmd/upgrade.rb')
| -rw-r--r-- | Library/Homebrew/cmd/upgrade.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb new file mode 100644 index 000000000..f86e8a871 --- /dev/null +++ b/Library/Homebrew/cmd/upgrade.rb @@ -0,0 +1,35 @@ +require 'cmd/outdated' +require 'cmd/install' + +class Fixnum + def plural_s + if self > 1 then "s" else "" end + end +end + +module Homebrew extend self + def upgrade + Homebrew.perform_preinstall_checks + + outdated = if ARGV.named.empty? + Homebrew.outdated_brews + else + ARGV.formulae.map{ |f| [f.prefix.parent, f.name, f.version] } + end + + if outdated.count > 1 + oh1 "Upgrading #{outdated.count} outdated package#{outdated.count.plural_s}, with result:" + puts outdated.map{ |_, name, version| "#{name} #{version}" } * ", " + end + + outdated.each do |rack, name, version| + installer = FormulaInstaller.new(Formula.factory(name)) + installer.show_header = false + oh1 "Upgrading #{name}" + installer.install + Keg.new("#{rack}/#{version}").unlink + installer.caveats + installer.finish # includes link step + end + end +end |
