module Ra10ke::Install

Public Instance Methods

define_task_install(*_args) click to toggle source
# File lib/ra10ke/install.rb, line 2
def define_task_install(*_args)
  desc 'Install modules specified in Puppetfile'
  task :install do
    require 'r10k/puppetfile'

    puppetfile = get_puppetfile
    puppetfile.load!

    puts 'Processing Puppetfile for fixtures'
    puppetfile.modules.each do |mod|
      if mod.status == :insync
        puts "Skipping #{mod.name} (#{mod.version}) already in sync"
      else
        msg = if mod.status == :absent
                "installed #{mod.name}"
              else
                "updated #{mod.name} from #{mod.version} to"
              end
        mod.sync
        if mod.status == :insync
          puts "Successfully #{msg} #{mod.version}".green
        else
          puts "Failed to sync #{mod.name}".red
        end
      end
    end

    puppetfile.purge! if @purge
  end
end