class R10K::Action::Puppetfile::Install

Public Instance Methods

call() click to toggle source
# File lib/r10k/action/puppetfile/install.rb, line 12
def call
  begin
    options = { basedir: @root, overrides: { force: @force || false } }
    options[:overrides][:modules] = { default_ref: @settings.dig(:git, :default_ref) }
    options[:moduledir]  = @moduledir  if @moduledir
    options[:puppetfile] = @puppetfile if @puppetfile
    options[:module_exclude_regex] = @module_exclude_regex if @module_exclude_regex

    loader = R10K::ModuleLoader::Puppetfile.new(**options)
    loaded_content = loader.load!

    pool_size = @settings[:pool_size] || 4
    modules   = loaded_content[:modules]
    if pool_size > 1
      R10K::ContentSynchronizer.concurrent_sync(modules, pool_size, logger)
    else
      R10K::ContentSynchronizer.serial_sync(modules, logger)
    end

    R10K::Util::Cleaner.new(loaded_content[:managed_directories],
                            loaded_content[:desired_contents],
                            loaded_content[:purge_exclusions]).purge!

    true
  rescue => e
    logger.error R10K::Errors::Formatting.format_exception(e, @trace)
    false
  end
end

Private Instance Methods

allowed_initialize_opts() click to toggle source
# File lib/r10k/action/puppetfile/install.rb, line 44
def allowed_initialize_opts
  super.merge(root: :self, puppetfile: :self, moduledir: :self, :'module-exclude-regex' => :self, force: :self )
end