MurgaNikolay/chef-eye

View on GitHub
recipes/eye.rb

Summary

Maintainability
A
0 mins
Test Coverage
include_recipe 'apt'
include_recipe 'build-essential'

execute 'fix_system_gems_permissions' do
  command 'find /var/lib/gems/ -type f -name \'*.rb\' -exec chmod a+r {} \;'
  only_if 'test -d /var/lib/gems'
end

gem_package 'eye' do
  version node['chef_eye']['version']
  notifies :run, 'execute[fix_system_gems_permissions]'
end

eye = chef_gem 'eye' do
  version node['chef_eye']['version']
end
ruby_block 'require_eye' do
  block do
    begin
      require 'eye'
      require 'eye/utils/mini_active_support'
      ::Eye::Dsl::PureOpts.send(:include, Eye::Logger::ObjectExt)
    rescue e
      Chef::Log.debug(e.message)
    end
  end
  subscribes :run, eye, :immediately
  notifies :run, 'execute[fix_system_gems_permissions]'
end.run_action(:run)

node['chef_eye']['plugins'].each do |gem, options|
  gem_package gem do
    version options['version'] if options['version']
    notifies :run, 'execute[fix_system_gems_permissions]'
  end

  plugin = chef_gem gem do
    version options['version'] if options['version']
  end
  # need for config validation
  ruby_block "require_#{gem}" do
    block do
      begin
        Array(options['require']).each { |file| require file }
      rescue e
        Chef::Log.debug(e.message)
      end
    end
    subscribes :run, plugin, :immediately
  end.run_action(:run)
end