class Hieracles::Commands

Attributes

available[R]

Public Class Methods

new(config) click to toggle source
# File lib/hieracles/commands.rb, line 7
def initialize(config)
  @config = config
  @formatter = Object.const_get("Hieracles::Formats::#{@config.format}")
  @available = %w(info files params paths modules allparams facts)
end

Public Instance Methods

call_node(command, fqdn, extra) click to toggle source
# File lib/hieracles/commands.rb, line 52
def call_node(command, fqdn, extra)
  node = Hieracles::Node.new fqdn, @config
  formatter = @formatter.new node
  formatter.send command, extra
end
farms(arg, extra) click to toggle source
# File lib/hieracles/commands.rb, line 30
def farms(arg, extra)
  if arg
    arg = [arg]
  else
    arg = []
  end
  formatter = @formatter.new nil
  farms = Hieracles::Registry.farms_nodes(@config, 'local', true)
  puts formatter.build_list(farms, nil, arg)
end
modules(arg, extra) click to toggle source
# File lib/hieracles/commands.rb, line 41
def modules(arg, extra)
  if arg
    arg = [arg]
  else
    arg = []
  end
  formatter = @formatter.new nil
  modules = Hieracles::Registry.nodes_modules(@config, 'local', arg)
  puts formatter.build_list(modules, nil, arg)
end
run(command, arg, extra) click to toggle source
# File lib/hieracles/commands.rb, line 13
def run(command, arg, extra)
  if arg and arg[/\./] # poor way to detect if it is a fqdn
    if Hieracles::Registry.nodes(@config).include? arg
      puts call_node(command.to_sym, arg, extra)
    else
      puts "node '#{arg}' not found"
    end
  else
    if respond_to? command
      send command.to_sym, arg, extra
    else
      # not a node
      puts "'#{arg}' is not a FQDN."
    end
  end
end