github.com/skyscape-cloud-services/terraform@v0.9.2-0.20170609144644-7ece028a1747/plugin/ui_output.go (about) 1 package plugin 2 3 import ( 4 "net/rpc" 5 6 "github.com/hashicorp/terraform/terraform" 7 ) 8 9 // UIOutput is an implementatin of terraform.UIOutput that communicates 10 // over RPC. 11 type UIOutput struct { 12 Client *rpc.Client 13 } 14 15 func (o *UIOutput) Output(v string) { 16 o.Client.Call("Plugin.Output", v, new(interface{})) 17 } 18 19 // UIOutputServer is the RPC server for serving UIOutput. 20 type UIOutputServer struct { 21 UIOutput terraform.UIOutput 22 } 23 24 func (s *UIOutputServer) Output( 25 v string, 26 reply *interface{}) error { 27 s.UIOutput.Output(v) 28 return nil 29 }