From 28dd174686bf2b72dad8d5fef72b5366c07d1ad5 Mon Sep 17 00:00:00 2001 From: sophia Date: Fri, 23 Apr 2021 14:36:37 -0500 Subject: [PATCH] Setup builtin host plugin with capabilities --- builtin/myplugin/host/cap/write_hello.go | 8 ++++++ builtin/myplugin/host/osx.go | 36 ++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 builtin/myplugin/host/cap/write_hello.go create mode 100644 builtin/myplugin/host/osx.go diff --git a/builtin/myplugin/host/cap/write_hello.go b/builtin/myplugin/host/cap/write_hello.go new file mode 100644 index 000000000..97577fca5 --- /dev/null +++ b/builtin/myplugin/host/cap/write_hello.go @@ -0,0 +1,8 @@ +package cap + +import "io/ioutil" + +func WriteHello() { + data := []byte("hello\ngo\n") + ioutil.WriteFile("/tmp/dat1", data, 0644) +} diff --git a/builtin/myplugin/host/osx.go b/builtin/myplugin/host/osx.go new file mode 100644 index 000000000..ac3a7d571 --- /dev/null +++ b/builtin/myplugin/host/osx.go @@ -0,0 +1,36 @@ +package host + +import ( + "github.com/hashicorp/vagrant-plugin-sdk/component" + sdkcore "github.com/hashicorp/vagrant-plugin-sdk/core" + "github.com/hashicorp/vagrant/builtin/myplugin/host/cap" +) + +type HostConfig struct { +} + +// TestOSXHost is a Host implementation for myplugin. +type OSXHost struct { + config HostConfig + + // Include capability host + sdkcore.CapabilityHost +} + +// DetectFunc implements component.Host +func (h *OSXHost) DetectFunc() interface{} { + return h.Detect() +} + +func (h *OSXHost) Detect() bool { + return true +} + +func (h *OSXHost) InitializeCapabilities() { + h.RegisterCapability("write_hello", cap.WriteHello) +} + +var ( + _ component.Host = (*OSXHost)(nil) + _ sdkcore.Host = (*OSXHost)(nil) +)