bin/puppi
#!/usr/bin/env ruby
require "optparse"
require 'puppi'
Puppi::initial_checks
begin
options = Hash.new
OptionParser.new do |opts|
opts.banner = "Usage: " + File.basename($0) + " [options] ..."
options[:action] = false
opts.on( "-a", "--action action", String, "action to perform" ) do |action|
options[:action] = action
end
options[:puppi_module] = nil
opts.on( "-m", "--module module", String, "module name to act on (Optional)" ) do |puppi_module|
options[:puppi_module] = puppi_module
end
options[:notification] = Array.new
opts.on( "-n", "--notification notification1,notification2", Array, "notification(s) methods (Optional)" ) do |notification|
options[:notification] = notification
end
opts.on_tail("-h", "--help", "Show this message") do
puts opts
end
end.parse!
rescue OptionParser::MissingArgument => e
warn "You can't specify an option without any argumento ("+e.to_s+")"
exit 1
end
if options.values.uniq == [false]
warn "Use -h, --help for usage."
exit 1
end
if options[:action] == false
warn "You MUST specify an action"
warn "Use -h, --help for usage."
exit 1
end
output = Puppi::Action.new(options).output
Puppi::Notification.new(options[:notification], output)