#!/usr/bin/env rake desc "Runs foodcritic linter" task :foodcritic do if Gem::Version.new("1.9.2") <= Gem::Version.new(RUBY_VERSION.dup) sandbox = File.join(File.dirname(__FILE__), %w{tmp foodcritic cookbook}) prepare_foodcritic_sandbox(sandbox) sh "foodcritic -f any -t ~FC015 #{File.dirname(sandbox)}" else puts "WARN: foodcritic run is skipped as Ruby #{RUBY_VERSION} is < 1.9.2." end end desc "Run spec/chefspec" task :chef_spec do sh "bundle exec rspec" end task :default => [:foodcritic, :chef_spec] private def prepare_foodcritic_sandbox(sandbox) files = %w{*.md *.rb attributes definitions files libraries providers recipes resources templates} rm_rf sandbox mkdir_p sandbox cp_r Dir.glob("{#{files.join(',')}}"), sandbox puts "\n\n" end