module Patriot::Util::Config

namespace for configuration files

Constants

ADMIN_USER_KEY

admin user to access remote host

DEFAULT_CONFIG

the path to default configuration file

DEFAULT_PLUGIN_DIR

default plugins directory

INFO_SERVER_PORT_KEY

port number used by info server

PASSWORD_KEY

configuratio key for admin password

PLUGIN_DIR_KEY

a configuration parameter key for plugins directory

PLUGIN_INIT_SCRIPT

plugin initiation script

PLUGIN_KEY

a configuration parameter key for plugins

PLUGIN_LIB_DIR

plugin directory

USERNAME_KEY

configuratio key for admin user name

WORKER_HOST_KEY

a comma separated list of hosts where workers are running

WORKER_USER_KEY

user who runs worker

Public Instance Methods

load_config(option = {}) click to toggle source

load configuration file @param option [Hash] @option option :path [String] path to configuration file @option option :type [String] load type (differe by tool) @option option :ignore_plugin [Boolean] set true not to load plugins

# File lib/patriot/util/config.rb, line 41
def load_config(option = {})
  option = {:path => DEFAULT_CONFIG,
            :type => nil,
            :ignore_plugin => false }.merge(option)
  conf = nil
  case File.extname(option[:path])
  when '.ini'
    conf = Patriot::Util::Config::IniFileConfig.new(option[:path], option[:type])
  else
    raise "unsupported config file name: #{conf[:path]}"
  end
  load_plugins(conf) unless option[:ignore_plugin]
  return conf
end
load_plugins(conf) click to toggle source

load plugins @param conf [Patriot::Util::Config::Base] configuration to load plugins

# File lib/patriot/util/config.rb, line 58
def load_plugins(conf)
  plugins = conf.get(PLUGIN_KEY)
  return conf if plugins.nil?
  plugins = [plugins] unless plugins.is_a?(Array)
  plugin_dir = conf.get(PLUGIN_DIR_KEY, DEFAULT_PLUGIN_DIR)
  plugins.each do |plugin|
    path = File.join($home, plugin_dir, plugin)
    init_script = File.join(path, PLUGIN_INIT_SCRIPT)
    raise "Failed to load #{plugin}: #{init_script} does not exist" unless File.file?(init_script)
    $: << File.join(path, PLUGIN_LIB_DIR)
    require init_script
  end
end