2022-04-25 12:26:37 -05:00

116 lines
3.2 KiB
Ruby

module VagrantPlugins
module CommandServe
class Client
class SyncedFolder < Client
include CapabilityPlatform
# Generate callback and spec for required arguments
#
# @return [SDK::FuncSpec, Proc]
def usable_func
spec = client.usable_spec(Empty.new)
cb = proc do |args|
client.usable(args).usable
end
[spec, cb]
end
# Check if synced folders are usable for guest
#
# @param machine [Vagrant::Machine] Guest machine
# @return [Boolean]
def usable(machine)
run_func(machine)
end
# Generate callback and spec for required arguments
#
# @return [SDK::FuncSpec, Proc]
def prepare_func
spec = client.prepare_spec(Empty.new)
cb = proc do |args|
client.prepare(args)
end
[spec, cb]
end
# Prepare synced folders on guest
#
# @param machine [Vagrant::Machine] Guest machine
# @param folders [Hash] Synced folders
# @param opts [Hash] Options for folders
def prepare(machine, folders, opts)
run_func(machine,
Type::Folders.new(value: folders),
Type::Options.new(value: opts),
)
end
# Generate callback and spec for required arguments
#
# @return [SDK::FuncSpec, Proc]
def enable_func
spec = client.enable_spec(Empty.new)
cb = proc do |args|
client.enable(args)
end
[spec, cb]
end
# Enable synced folders on guest
#
# @param machine [Vagrant::Machine] Guest machine
# @param folders [Hash] Synced folders
# @param opts [Hash] Options for folders
def enable(machine, folders, opts)
run_func(machine,
Type::Folders.new(value: folders),
Type::Options.new(value: opts),
)
end
# Generate callback and spec for required arguments
#
# @return [SDK::FuncSpec, Proc]
def disable_func
spec = client.disable_spec(Empty.new)
cb = proc do |args|
client.disable(args)
end
[spec, cb]
end
# Disable synced folders on guest
#
# @param machine [Vagrant::Machine] Guest machine
# @param folders [Hash] Synced folders
# @param opts [Hash] Options for folders
def disable(machine, folders, opts)
run_func(machine,
Type::Folders.new(value: folders),
Type::Options.new(value: opts),
)
end
# Generate callback and spec for required arguments
#
# @return [SDK::FuncSpec, Proc]
def cleanup_func
spec = client.cleanup_spec(Empty.new)
cb = proc do |args|
client.cleanup(args)
end
[spec, cb]
end
# Cleanup synced folders on guest
#
# @param machine [Vagrant::Machine] Guest machine
# @param opts [Hash] Options for folders
def cleanup(machine, opts)
run_func(machine, Type::Options.new(value: opts))
end
end
end
end
end