From ce6b2c8338019257cb0004bb04806041b632f9b9 Mon Sep 17 00:00:00 2001 From: sophia Date: Fri, 29 Oct 2021 10:49:41 -0500 Subject: [PATCH] Add mapper for communicator command --- plugins/commands/serve/mappers.rb | 1 + .../commands/serve/mappers/communicator.rb | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) create mode 100644 plugins/commands/serve/mappers/communicator.rb diff --git a/plugins/commands/serve/mappers.rb b/plugins/commands/serve/mappers.rb index 5d3025b3e..e1551087f 100644 --- a/plugins/commands/serve/mappers.rb +++ b/plugins/commands/serve/mappers.rb @@ -263,6 +263,7 @@ require Vagrant.source_root.join("plugins/commands/serve/mappers/basis.rb").to_s require Vagrant.source_root.join("plugins/commands/serve/mappers/box.rb").to_s require Vagrant.source_root.join("plugins/commands/serve/mappers/capabilities.rb").to_s require Vagrant.source_root.join("plugins/commands/serve/mappers/command.rb").to_s +require Vagrant.source_root.join("plugins/commands/serve/mappers/communicator.rb").to_s require Vagrant.source_root.join("plugins/commands/serve/mappers/direct.rb").to_s require Vagrant.source_root.join("plugins/commands/serve/mappers/environment.rb").to_s require Vagrant.source_root.join("plugins/commands/serve/mappers/guest.rb").to_s diff --git a/plugins/commands/serve/mappers/communicator.rb b/plugins/commands/serve/mappers/communicator.rb new file mode 100644 index 000000000..a80ad0349 --- /dev/null +++ b/plugins/commands/serve/mappers/communicator.rb @@ -0,0 +1,22 @@ +module VagrantPlugins + module CommandServe + class Mappers + # Build a communicator command arguments from a FuncSpec value + class CommunicatorCommandArgumentsFromSpec < Mapper + def initialize + inputs = [].tap do |i| + i << Input.new(type: SDK::FuncSpec::Value) { |arg| + arg.type == "hashicorp.vagrant.sdk.Communicator.Command" && + !arg&.value&.value.nil? + } + end + super(inputs: inputs, output: SDK::Communicator::Command, func: method(:converter)) + end + + def converter(proto) + SDK::Communicator::Command.decode(proto.value.value) + end + end + end + end +end