Make debug backend forward on all messages

Docker-DCO-1.1-Signed-off-by: Ben Firshman <ben@firshman.co.uk> (github: bfirsh)
This commit is contained in:
Ben Firshman 2014-06-05 12:41:19 -07:00
parent 3bb782faf1
commit 0d7cf7415d
1 changed files with 15 additions and 6 deletions

View File

@ -24,12 +24,21 @@ func New() *beam.Object {
func Debug() beam.Sender {
backend := beam.NewServer()
backend.OnSpawn(beam.Handler(func(ctx *beam.Message) error {
instance := beam.NewServer()
instance.Catchall(beam.Handler(func(msg *beam.Message) error {
fmt.Printf("[DEBUG] %s %s\n", msg.Verb, strings.Join(msg.Args, " "))
ctx.Ret.Send(msg)
return nil
}))
instance := beam.Task(func(in beam.Receiver, out beam.Sender) {
fmt.Printf("debug backend!")
for {
msg, err := in.Receive(beam.Ret)
if err != nil {
fmt.Printf("debug receive: %v", err)
return
}
fmt.Printf("[DEBUG] %s %s\n", msg.Verb, strings.Join(msg.Args, " "))
if _, err := out.Send(msg); err != nil {
fmt.Printf("debug send: %v", err)
return
}
}
})
_, err := ctx.Ret.Send(&beam.Message{Verb: beam.Ack, Ret: instance})
return err
}))