# README
Vagrant Plugin SDK
This repository is a Go library that enables users to write custom Vagrant plugins.
Plugins in Vagrant are separate binaries which communicate with the Vagrant application; the plugin communicates using gRPC, and while it is theoretically possible to build a plugin in any language supported by the gRPC framework. We recommend that the developers leverage the Vagrant SDK.
Generating protos
All Go & Ruby protos are wired into go-generate
. To generate them you'll need a few binaries on your path:
protoc
- installation instructions on the gRPC Docsgrpc_tools_ruby_protoc
- from thegrpc-tools
gem, which bundles that binary prebuiltstringer
- from the go tools pkgmockery
- from the go library hosted at vektra/mockery
You also need to ensure the output directory is present:
$ mkdir -p ruby-proto
Once that's all set up you should be ready to roll:
$ go generate .
# Packages
No description provided by the author
Package component exposes the component types supported and helpers around those types.
No description provided by the author
No description provided by the author
Package datadir manages the data directories.
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
multistep is a library for building up complex actions using individual, discrete steps.
No description provided by the author
Package terminal is used by plugins to read and write to a terminal UI.
# Functions
No description provided by the author
Main is the primary entrypoint for plugins serving components.
WithComponent registers a single component along with options for that component.
WithComponents specifies a list of components to serve from the plugin binary.
No description provided by the author
WithMappers specifies a list of mappers to apply to the plugin.
No description provided by the author
# Type aliases
Option modifies config.