module DeployInfo::CLI

> Deploy-Info Launcher

Public Instance Methods

run(argv = ARGV) click to toggle source

> Launch the Application

# File lib/deploy-info/cli.rb, line 71
def run(argv = ARGV)
  # => Parse CLI Configuration
  cli = Options.new
  cli.parse_options(argv)

  # => Parse JSON Config File (If Specified & Exists)
  json_config = Util.parse_json_config(cli.config[:config_file] || Config.config_file)

  # => Grab the Default Values
  default = Config.options

  # => 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.state_file          = config[:state_file]
    cfg.environment         = config[:environment].to_sym.downcase
    cfg.github_oauth_token  = config[:github_oauth_token]
    cfg.nr_api_key          = config[:nr_api_key]
  end

  # => Launch the API
  API.run!
end