brew/Library/Homebrew/cmd/outdated.rb
Mike McQuaid 426737eb9e outdated: allow passing formulae as arguments.
If formulae names are passed as arguments check if just they are outdated. Additionally, return a failed code if they are outdated.

This will hopefully be able to stop people complaining about the outdated error code as they can now just run e.g.:
`brew outdated git && brew upgrade git`

Closes Homebrew/homebrew#31242.

Signed-off-by: Mike McQuaid <mike@mikemcquaid.com>
2014-08-01 17:46:05 +02:00

27 lines
682 B
Ruby

require 'formula'
require 'keg'
module Homebrew
def outdated
outdated_brews do |f, versions|
if ($stdout.tty? || ARGV.verbose?) and not ARGV.flag? '--quiet'
puts "#{f.name} (#{versions*', '} < #{f.pkg_version})"
else
puts f.name
end
end
Homebrew.failed = ARGV.formulae.any? && outdated_brews.any?
end
def outdated_brews
brews = ARGV.formulae.any? ? ARGV.formulae : Formula.installed
brews.map do |f|
versions = f.rack.subdirs.map { |d| Keg.new(d).version }.sort!
if versions.all? { |version| f.pkg_version > version }
yield f, versions if block_given?
f
end
end.compact
end
end