module ChefRunDeck::CLI
> Chef-RunDeck Launcher¶ ↑
Public Instance Methods
run(argv = ARGV)
click to toggle source
> Launch the Application¶ ↑
# File lib/chef-rundeck/cli.rb, line 97 def run(argv = ARGV) # => Parse CLI Configuration cli = Options.new cli.parse_options(argv) # => Grab the Default Values default = Config.options # => Parse JSON Config File (If Specified and Exists) json_config = Util.parse_json_config(cli.config[:config_file] || Config.config_file) # => Merge Configuration (CLI Wins) config = [default, json_config, cli.config].compact.reduce(:merge) # => Apply Configuration Config.setup do |cfg| cfg.config_file = config[:config_file] cfg.cache_timeout = config[:cache_timeout].to_i cfg.bind = config[:bind] cfg.port = config[:port] cfg.auth_file = config[:auth_file] cfg.state_file = config[:state_file] cfg.environment = config[:environment].to_sym.downcase cfg.chef_api_endpoint = config[:chef_api_endpoint] cfg.chef_api_client = config[:chef_api_client] cfg.chef_api_client_key = config[:chef_api_client_key] cfg.chef_api_admin = config[:chef_api_admin] cfg.chef_api_admin_key = config[:chef_api_admin_key] cfg.rd_node_username = config[:rd_node_username] end # => Launch the API API.run! end