Class: Kondate::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/kondate/config.rb

Constant Summary collapse

DEFAULT_CONFIG_PATH =
'.kondate.conf'

Class Method Summary collapse

Class Method Details

.configObject



23
24
25
26
27
28
29
30
# File 'lib/kondate/config.rb', line 23

def config
  return @config if @config
  if config_path == DEFAULT_CONFIG_PATH && !File.exist?(config_path)
    @config = Thor::CoreExt::HashWithIndifferentAccess.new({})
  else
    @config = Thor::CoreExt::HashWithIndifferentAccess.new(YAML.load_file(config_path))
  end
end

.config_pathObject



32
33
34
# File 'lib/kondate/config.rb', line 32

def config_path
  @config_path ||= opts[:config] || ENV['KONDATE_CONFIG_PATH'] || DEFAULT_CONFIG_PATH
end

.configure(opts = {}) ⇒ Object



6
7
8
9
10
# File 'lib/kondate/config.rb', line 6

def configure(opts = {})
  @opts = opts
  reset
  self
end

.environments_properties_dirObject



79
80
81
# File 'lib/kondate/config.rb', line 79

def environments_properties_dir
  config[:environments_properties_dir] || 'properties/environments'
end

.explore_role_files?Boolean

Returns:

  • (Boolean)


111
112
113
# File 'lib/kondate/config.rb', line 111

def explore_role_files?
  !config[:explore_role_files].nil?
end

.host_pluginObject



123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/kondate/config.rb', line 123

def host_plugin
  return @host_plugin if @host_plugin
  plugin = Thor::CoreExt::HashWithIndifferentAccess.new(config[:host_plugin] || {
    'type' => 'file',
    'path' => 'hosts.yml'
  })
  begin
    require File.join(Config.plugin_dir, "kondate/host_plugin/#{plugin.type}")
  rescue LoadError => e
    require "kondate/host_plugin/#{plugin.type}"
  end
  class_name = "Kondate::HostPlugin::#{StringUtil.camelize(plugin.type)}" 
  @host_plugin = Object.const_get(class_name).new(plugin)
end

.kondate_directoriesObject



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

def kondate_directories
  {
    'middleware_recipes_dir' => middleware_recipes_dir,
    'roles_recipes_dir' => roles_recipes_dir,
    'middleware_recipes_serverspec_dir' => middleware_recipes_serverspec_dir,
    'roles_recipes_serverspec_dir' => roles_recipes_serverspec_dir,
    'nodes_properties_dir' => nodes_properties_dir,
    'roles_properties_dir' => roles_properties_dir,
    'environments_properties_dir' => environments_properties_dir,
    'secret_middleware_recipes_dir' => secret_middleware_recipes_dir,
    'secret_roles_recipes_dir' => secret_roles_recipes_dir,
    'secret_middleware_recipes_serverspec_dir' => secret_middleware_recipes_serverspec_dir,
    'secret_roles_recipes_serverspec_dir' => secret_roles_recipes_serverspec_dir,
    'secret_nodes_properties_dir' => secret_nodes_properties_dir,
    'secret_roles_properties_dir' => secret_roles_properties_dir,
    'secret_environments_properties_dir' => secret_environments_properties_dir,
  }
end

.middleware_recipes_dirObject



55
56
57
# File 'lib/kondate/config.rb', line 55

def middleware_recipes_dir
  config[:middleware_recipes_dir] || 'recipes/middleware'
end

.middleware_recipes_serverspec_dirObject



63
64
65
# File 'lib/kondate/config.rb', line 63

def middleware_recipes_serverspec_dir
  config[:middleware_recipes_serverspec_dir] || 'spec/middleware'
end

.nodes_properties_dirObject



71
72
73
# File 'lib/kondate/config.rb', line 71

def nodes_properties_dir
  config[:nodes_properties_dir] || 'properties/nodes'
end

.optsObject



12
13
14
# File 'lib/kondate/config.rb', line 12

def opts
  @opts ||= {}
end

.plugin_dirObject



119
120
121
# File 'lib/kondate/config.rb', line 119

def plugin_dir
  File.expand_path(config[:plugin_dir] || 'lib')
end

.resetObject



16
17
18
19
# File 'lib/kondate/config.rb', line 16

def reset
  @config_path = nil
  @config = nil
end

.role_delimiterObject



115
116
117
# File 'lib/kondate/config.rb', line 115

def role_delimiter
  config[:role_delimiter] || '-'
end

.roles_properties_dirObject



75
76
77
# File 'lib/kondate/config.rb', line 75

def roles_properties_dir
  config[:roles_properties_dir] || 'properties/roles'
end

.roles_recipes_dirObject



59
60
61
# File 'lib/kondate/config.rb', line 59

def roles_recipes_dir
  config[:roles_recipes_dir] || 'recipes/roles'
end

.roles_recipes_serverspec_dirObject



67
68
69
# File 'lib/kondate/config.rb', line 67

def roles_recipes_serverspec_dir
  config[:roles_recipes_serverspec_dir] || 'spec/roles'
end

.secret_environments_properties_dirObject



107
108
109
# File 'lib/kondate/config.rb', line 107

def secret_environments_properties_dir
  config[:secret_environments_properties_dir] || 'secrets/properties/environments'
end

.secret_middleware_recipes_dirObject



83
84
85
# File 'lib/kondate/config.rb', line 83

def secret_middleware_recipes_dir
  config[:secret_middleware_recipes_dir] || 'secrets/recipes/middleware'
end

.secret_middleware_recipes_serverspec_dirObject



91
92
93
# File 'lib/kondate/config.rb', line 91

def secret_middleware_recipes_serverspec_dir
  config[:secret_middleware_recipes_serverspec_dir] || 'secrets/spec/middleware'
end

.secret_nodes_properties_dirObject



99
100
101
# File 'lib/kondate/config.rb', line 99

def secret_nodes_properties_dir
  config[:secret_nodes_properties_dir] || 'secrets/properties/nodes'
end

.secret_roles_properties_dirObject



103
104
105
# File 'lib/kondate/config.rb', line 103

def secret_roles_properties_dir
  config[:secret_roles_properties_dir] || 'secrets/properties/roles'
end

.secret_roles_recipes_dirObject



87
88
89
# File 'lib/kondate/config.rb', line 87

def secret_roles_recipes_dir
  config[:secret_roles_recipes_dir] || 'secrets/recipes/roles'
end

.secret_roles_recipes_serverspec_dirObject



95
96
97
# File 'lib/kondate/config.rb', line 95

def secret_roles_recipes_serverspec_dir
  config[:secret_roles_recipes_serverspec_dir] || 'secrets/spec/roles'
end