beam/examples/beamsh: use beam.Router to simplify 'trace'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
This commit is contained in:
parent
1dbb699e6a
commit
df3bbb2875
1 changed files with 7 additions and 17 deletions
|
@ -188,23 +188,13 @@ func CmdExec(args []string, stdout, stderr io.Writer, in beam.Receiver, out beam
|
||||||
}
|
}
|
||||||
|
|
||||||
func CmdTrace(args []string, stdout, stderr io.Writer, in beam.Receiver, out beam.Sender) {
|
func CmdTrace(args []string, stdout, stderr io.Writer, in beam.Receiver, out beam.Sender) {
|
||||||
for {
|
r := beam.NewRouter(out)
|
||||||
p, a, err := in.Receive()
|
r.NewRoute().All().Handler(func(payload []byte, attachment *os.File) error {
|
||||||
if err != nil {
|
fmt.Printf("===> %s\n", beam.MsgDesc(payload, attachment))
|
||||||
return
|
out.Send(payload, attachment)
|
||||||
}
|
return nil
|
||||||
var msg string
|
})
|
||||||
if pretty := data.Message(string(p)).Pretty(); pretty != "" {
|
beam.Copy(r, in)
|
||||||
msg = pretty
|
|
||||||
} else {
|
|
||||||
msg = string(p)
|
|
||||||
}
|
|
||||||
if a != nil {
|
|
||||||
msg = fmt.Sprintf("%s [%d]", msg, a.Fd())
|
|
||||||
}
|
|
||||||
fmt.Printf("===> %s\n", msg)
|
|
||||||
out.Send(p, a)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func CmdEmit(args []string, stdout, stderr io.Writer, in beam.Receiver, out beam.Sender) {
|
func CmdEmit(args []string, stdout, stderr io.Writer, in beam.Receiver, out beam.Sender) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue