capistrano/features/support/vagrant_helpers.rb

36 lines
769 B
Ruby

module VagrantHelpers
extend self
class VagrantSSHCommandError < RuntimeError; end
at_exit do
if ENV["KEEP_RUNNING"]
puts "Vagrant vm will be left up because KEEP_RUNNING is set."
puts "Rerun without KEEP_RUNNING set to cleanup the vm."
else
vagrant_cli_command("destroy -f")
end
end
def vagrant_cli_command(command)
puts "[vagrant] #{command}"
Dir.chdir(VAGRANT_ROOT) do
`#{VAGRANT_BIN} #{command} 2>&1`.split("\n").each do |line|
puts "[vagrant] #{line}"
end
end
$?
end
def run_vagrant_command(command)
if (status = vagrant_cli_command("ssh -c #{command.inspect}")).success?
true
else
fail VagrantSSHCommandError, status
end
end
end
World(VagrantHelpers)