require 'getoptlong'
require 'puppet'
require 'rdoc/usage'
ActiveRecord::Base.establish_connection(
:adapter => 'mysql',
:database => 'puppet',
:host => 'localhost',
:password => 'secret',
:username => 'puppet'
)
class Hosts < Puppet::Rails::Host; end
opts = GetoptLong.new(
[ '--class', '-c', GetoptLong::REQUIRED_ARGUMENT],
[ '--help', '-h', GetoptLong::NO_ARGUMENT ],
[ '--print', '-p', GetoptLong::REQUIRED_ARGUMENT]
)
printtype = "name"
opt_hash = Hash.new()
opts.each do |opt, arg|
case opt
when '--class'
opt_hash['class'] = arg
when '--help'
RDoc::usage
when '--print'
printtype = arg
end
end
query =''
if opt_hash['class']
query = "(resources.restype = \'Class\' AND resources.title = \'#{opt_hash['class']}\')"
end
puts Hosts.find(:all,
:include => [ :resources ],
:conditions => query
).map { |host| host.send(printtype) }