Module: RatDeployer::Config

Defined in:
lib/rat_deployer/config.rb

Overview

This module handles config fetching from env and config files

Class Method Summary collapse

Class Method Details

.allObject



7
8
9
# File 'lib/rat_deployer/config.rb', line 7

def self.all
  @all ||= YAML.load_file(File.expand_path('./rat_config.yml')) || {}
end

.envObject



27
28
29
# File 'lib/rat_deployer/config.rb', line 27

def self.env
  ENV['RAT_ENV'] || 'default'
end

.for_env(e = env) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/rat_deployer/config.rb', line 11

def self.for_env(e = env)
  environmental = all.fetch('environments', {})
  default_conf = environmental.fetch('default', {})
  env_conf     = environmental.fetch(e, {})

  default_conf.deep_merge(env_conf)
end

.imagesObject



31
32
33
# File 'lib/rat_deployer/config.rb', line 31

def self.images
  all.fetch('images', {})
end

.prompt_enabled?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/rat_deployer/config.rb', line 19

def self.prompt_enabled?
  ENV['RAT_PROMPT'] != 'false'
end

.remoteObject



23
24
25
# File 'lib/rat_deployer/config.rb', line 23

def self.remote
  ENV['RAT_REMOTE'] =~ /true|1|yes/
end

.remote_machine_flagsObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/rat_deployer/config.rb', line 35

def self.remote_machine_flags
  machine = for_env.fetch('machine')

  case machine
  when Hash
    [
      '--tlsverify',
      "-H='#{machine.fetch('host')}'",
      "--tlscacert='#{machine.fetch('ca_cert')}'",
      "--tlscert='#{machine.fetch('cert')}'",
      "--tlskey='#{machine.fetch('key')}'"
    ].join(' ')
  else
    raise 'Bad configuration value for `machine`'
  end
end