2010-09-11 20:22:54 +01:00
|
|
|
require 'formula'
|
|
|
|
|
|
|
|
module Homebrew extend self
|
|
|
|
def outdated
|
2011-09-11 13:06:05 -07:00
|
|
|
outdated_brews.each do |f|
|
2010-09-11 20:22:54 +01:00
|
|
|
if $stdout.tty? and not ARGV.flag? '--quiet'
|
2011-09-11 13:06:05 -07:00
|
|
|
versions = f.rack.cd{ Dir['*'] }.join(', ')
|
|
|
|
puts "#{f.name} (#{versions} < #{f.version})"
|
2010-09-11 20:22:54 +01:00
|
|
|
else
|
2011-09-11 13:06:05 -07:00
|
|
|
puts f.name
|
2010-09-11 20:22:54 +01:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def outdated_brews
|
|
|
|
HOMEBREW_CELLAR.subdirs.map do |rack|
|
|
|
|
# Skip kegs with no versions installed
|
|
|
|
next unless rack.subdirs
|
|
|
|
|
|
|
|
# Skip HEAD formulae, consider them "evergreen"
|
|
|
|
next if rack.subdirs.map{ |keg| keg.basename.to_s }.include? "HEAD"
|
|
|
|
|
|
|
|
name = rack.basename.to_s
|
|
|
|
f = Formula.factory name rescue nil
|
2011-09-11 13:06:05 -07:00
|
|
|
f if f and not f.installed?
|
2010-09-11 20:22:54 +01:00
|
|
|
end.compact
|
|
|
|
end
|
2011-09-11 13:06:05 -07:00
|
|
|
end
|