vagrant/plugins/commands/suspend/command.rb
Chris Roberts ea25996b21
Update Vagrant behavior outside of installers
Remove customized require behaviors and modify the bin executable
to check for missing tools that Vagrant expects to exist when
running outside of an installer.
2025-04-02 11:40:17 -07:00

49 lines
1.1 KiB
Ruby

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
require 'optparse'
module VagrantPlugins
module CommandSuspend
class Command < Vagrant.plugin("2", :command)
def self.synopsis
"suspends the machine"
end
def execute
options = {}
opts = OptionParser.new do |o|
o.banner = "Usage: vagrant suspend [options] [name|id]"
o.separator ""
o.on("-a", "--all-global", "Suspend all running vms globally.") do |p|
options[:all] = true
end
end
# Parse the options
argv = parse_options(opts)
return if !argv
@logger.debug("'suspend' each target VM...")
target = []
if options[:all]
if argv.size > 0
raise Vagrant::Errors::CommandSuspendAllArgs
end
m = @env.machine_index.each { |m| m }
target = m.keys
else
target = argv
end
with_target_vms(target) do |vm|
vm.action(:suspend)
end
# Success, exit status 0
0
end
end
end
end