Method: Sunshine.setup

Defined in:
lib/sunshine.rb

.setup(new_config = {}, reset = false) ⇒ Object

Setup Sunshine with a custom config:

Sunshine.setup 'level' => 'debug', 'deploy_env' => :production


308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
# File 'lib/sunshine.rb', line 308

def self.setup new_config={}, reset=false
  @config = DEFAULT_CONFIG.dup if reset

  TrapStack.trap_signal :INT do |msg|
    $stderr << "\n\n"
    logger.indent = 0
    logger.fatal :INT, "Caught INT signal!"
    logger.info :INT, msg
  end

  TrapStack.add_trap "Disconnecting all remote shells." do
    RemoteShell.disconnect_all
  end


  require_libs(*new_config['require'])

  config.merge! new_config

  log_level = Logger.const_get config['level'].upcase rescue Logger::INFO
  @logger   = Sunshine::Output.new :level => log_level

  config
end