aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/outdated.rb
blob: a8fb33cd0826660d8fdb8f370e3841c59a73e87f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
require 'formula'
require 'keg'

module Homebrew extend self
  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
  end

  def outdated_brews
    Formula.installed.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