2023-08-10 16:53:25 -04:00
|
|
|
# Copyright (c) HashiCorp, Inc.
|
|
|
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
|
|
2013-09-02 12:31:26 -04:00
|
|
|
require 'optparse'
|
|
|
|
|
|
|
|
|
|
require_relative "base"
|
|
|
|
|
require_relative "mixin_install_opts"
|
|
|
|
|
|
|
|
|
|
module VagrantPlugins
|
|
|
|
|
module CommandPlugin
|
|
|
|
|
module Command
|
|
|
|
|
class Update < Base
|
|
|
|
|
include MixinInstallOpts
|
|
|
|
|
|
|
|
|
|
def execute
|
2018-07-18 17:02:17 -04:00
|
|
|
options = {}
|
2013-09-02 12:31:26 -04:00
|
|
|
opts = OptionParser.new do |o|
|
2014-01-06 01:33:05 -05:00
|
|
|
o.banner = "Usage: vagrant plugin update [names...] [-h]"
|
2013-09-02 12:31:26 -04:00
|
|
|
o.separator ""
|
2018-07-18 17:02:17 -04:00
|
|
|
|
2018-07-18 17:19:29 -04:00
|
|
|
o.on("--local", "Update plugin in local project") do |l|
|
2018-07-18 17:02:17 -04:00
|
|
|
options[:env_local] = l
|
|
|
|
|
end
|
2013-09-02 12:31:26 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
|
|
# Parse the options
|
|
|
|
|
argv = parse_options(opts)
|
|
|
|
|
return if !argv
|
|
|
|
|
|
|
|
|
|
# Update the gem
|
|
|
|
|
action(Action.action_update, {
|
2014-05-22 12:35:12 -04:00
|
|
|
plugin_name: argv,
|
2018-07-18 17:02:17 -04:00
|
|
|
env_local: options[:env_local]
|
2013-09-02 12:31:26 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
# Success, exit status 0
|
|
|
|
|
0
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|