mirror of
https://github.com/capistrano/capistrano
synced 2023-03-27 23:21:18 -04:00
36 lines
769 B
Ruby
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)
|