 426737eb9e
			
		
	
	
		426737eb9e
		
	
	
	
	
		
			
			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>
		
			
				
	
	
		
			27 lines
		
	
	
		
			682 B
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			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
 |