Correctly handle reading from events channel
Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
parent
209a7fc3e4
commit
090687916d
@ -42,38 +42,36 @@ var Command = cli.Command{
|
|||||||
defer cancel()
|
defer cancel()
|
||||||
eventsClient := client.EventService()
|
eventsClient := client.EventService()
|
||||||
eventsCh, errCh := eventsClient.Subscribe(ctx, context.Args()...)
|
eventsCh, errCh := eventsClient.Subscribe(ctx, context.Args()...)
|
||||||
for {
|
open := true
|
||||||
|
for open {
|
||||||
var e *events.Envelope
|
var e *events.Envelope
|
||||||
select {
|
select {
|
||||||
case evt, closed := <-eventsCh:
|
case e = <-eventsCh:
|
||||||
if closed {
|
case err, open = <-errCh:
|
||||||
return nil
|
|
||||||
}
|
|
||||||
e = evt
|
|
||||||
case err := <-errCh:
|
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if e != nil {
|
||||||
var out []byte
|
var out []byte
|
||||||
if e.Event != nil {
|
if e.Event != nil {
|
||||||
v, err := typeurl.UnmarshalAny(e.Event)
|
v, err := typeurl.UnmarshalAny(e.Event)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
out, err = json.Marshal(v)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if _, err := fmt.Println(
|
||||||
|
e.Timestamp,
|
||||||
|
e.Namespace,
|
||||||
|
e.Topic,
|
||||||
|
string(out),
|
||||||
|
); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
out, err = json.Marshal(v)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if _, err := fmt.Println(
|
|
||||||
e.Timestamp,
|
|
||||||
e.Namespace,
|
|
||||||
e.Topic,
|
|
||||||
string(out),
|
|
||||||
); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return nil
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user