class R10K::Source::Yamldir
Public Class Methods
new(name, basedir, options = {})
click to toggle source
Calls superclass method
R10K::Source::Hash::new
# File lib/r10k/source/yamldir.rb, line 4 def initialize(name, basedir, options = {}) config = options[:config] || '/etc/puppetlabs/r10k/environments.d' unless File.directory?(config) raise R10K::Deployment::Config::ConfigError, _("Error opening %{dir}: config must be a directory") % {dir: config} end unless File.readable?(config) raise R10K::Deployment::Config::ConfigError, _("Error opening %{dir}: permission denied") % {dir: config} end environment_data = Dir.glob(File.join(config, '*.yaml')).reduce({}) do |memo,path| name = File.basename(path, '.yaml') begin contents = ::YAML.load_file(path) rescue => e raise R10K::Deployment::Config::ConfigError, _("Error loading %{path}: %{err}") % {path: path, err: e.message} end memo.merge({name => contents }) end # Set the environments key for the parent class to consume options[:environments] = environment_data # All we need to do is supply options with the :environments hash. # The R10K::Source::Hash parent class takes care of the rest. super(name, basedir, options) end