|
|
|
|
@ -21,6 +21,15 @@ type EnvironmentCliArgs struct {
|
|
|
|
|
Args []string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (e *Environment) Builder(name string) packer.Builder {
|
|
|
|
|
var reply string
|
|
|
|
|
e.client.Call("Environment.Builder", name, &reply)
|
|
|
|
|
|
|
|
|
|
// TODO: error handling
|
|
|
|
|
client, _ := rpc.Dial("tcp", reply)
|
|
|
|
|
return &Builder{client}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (e *Environment) Cli(args []string) (result int) {
|
|
|
|
|
rpcArgs := &EnvironmentCliArgs{args}
|
|
|
|
|
e.client.Call("Environment.Cli", rpcArgs, &result)
|
|
|
|
|
@ -36,6 +45,18 @@ func (e *Environment) Ui() packer.Ui {
|
|
|
|
|
return &Ui{client}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (e *EnvironmentServer) Builder(name *string, reply *string) error {
|
|
|
|
|
builder := e.env.Builder(*name)
|
|
|
|
|
|
|
|
|
|
// Wrap it
|
|
|
|
|
server := NewServer()
|
|
|
|
|
server.RegisterBuilder(builder)
|
|
|
|
|
server.StartSingle()
|
|
|
|
|
|
|
|
|
|
*reply = server.Address()
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (e *EnvironmentServer) Cli(args *EnvironmentCliArgs, reply *int) error {
|
|
|
|
|
*reply = e.env.Cli(args.Args)
|
|
|
|
|
return nil
|
|
|
|
|
|