phpservermon/puphpet/puppet/modules/staging/Rakefile

52 lines
1.3 KiB
Ruby

require 'rubygems'
require 'puppetlabs_spec_helper/rake_tasks'
def io_popen(command)
IO.popen(command) do |io|
io.each do |line|
print line
yield line if block_given?
end
end
end
# Customize lint option
task :lint do
PuppetLint.configuration.send("disable_80chars")
PuppetLint.configuration.send("disable_class_parameter_defaults")
end
desc "Validate manifests, templates, and ruby files in lib."
task :validate do
Dir['manifests/**/*.pp'].each do |manifest|
sh "puppet parser validate --noop #{manifest}"
end
Dir['lib/**/*.rb'].each do |lib_file|
sh "ruby -c #{lib_file}"
end
Dir['templates/**/*.erb'].each do |template|
sh "erb -P -x -T '-' #{template} | ruby -c"
end
end
# Initialize vagrant instance for testing
desc "Powers on Vagrant VMs with specific manifests"
task :vagrant, :manifest do |t, args|
Rake::Task["spec_prep"].execute
prefix = "VAGRANT_MANIFEST='#{args[:manifest]||'init.pp'}'"
puts args[:manifest]
provision = false
io_popen("export #{prefix}; vagrant up --provider=vmware_fusion") do |line|
provision = true if line =~ /Machine is already running./
end
io_popen("export #{prefix}; vagrant provision") if provision
end
# Cleanup vagrant environment
task :vagrant_clean do
`vagrant destroy -f`
Rake::Task["spec_clean"].execute
end