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 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 @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