#!/usr/bin/env ruby $LOAD_PATH << File.expand_path("../../lib", __FILE__) require 'hieracles' require 'hieracles/options/hc' opt = Hieracles::Options::Hc.new(ARGV) if opt.options.has_key? :version puts Hieracles.version exit(0) end fqdn = opt.payload[0] command = opt.payload[1] args = opt.payload[2..-1] unless fqdn && command puts Hieracles::Options::Hc.usage exit(1) end if Hieracles::Format.method_defined? command begin config = Hieracles::Config.new opt.options node = Hieracles::Node.new fqdn, config rescue Exception => e puts "*** Error: #{e.message}" exit(1) end begin formatter = Object.const_get("Hieracles::Formats::#{config.format}") rescue puts "*** Unknown format #{config.format}" exit(1) end dispatch = formatter.new node puts dispatch.send(command.to_sym, args) else puts "*** Unknown command: #{command}" Hieracles::Options::Hc.usage exit(1) end