@@ -3,7 +3,6 @@ use aws_iot_device_sdk_rust::{
3
3
} ;
4
4
use clap:: { Parser , Subcommand } ;
5
5
use colored:: * ;
6
- use env_logger;
7
6
use log:: debug;
8
7
use regex:: Regex ;
9
8
use serde_json:: Value ;
@@ -172,29 +171,26 @@ async fn main() -> Result<(), Box<dyn Error>> {
172
171
173
172
let recv_thread = task:: spawn ( async move {
174
173
loop {
175
- match receiver. lock ( ) . await . recv ( ) . await {
176
- Ok ( Packet :: Publish ( p) ) => {
177
- let topic = p. topic ;
178
- let payload = match String :: from_utf8 ( p. payload . to_vec ( ) ) {
179
- Ok ( s) => s,
180
- Err ( e) => {
181
- eprintln ! ( "Invalid UTF-8 payload: {}" , e) ;
182
- continue ;
183
- }
184
- } ;
185
- if let Some ( ref regex) = include_regex {
186
- if !regex. is_match ( & topic) {
187
- continue ;
188
- }
174
+ if let Ok ( Packet :: Publish ( p) ) = receiver. lock ( ) . await . recv ( ) . await {
175
+ let topic = p. topic ;
176
+ let payload = match String :: from_utf8 ( p. payload . to_vec ( ) ) {
177
+ Ok ( s) => s,
178
+ Err ( e) => {
179
+ eprintln ! ( "Invalid UTF-8 payload: {}" , e) ;
180
+ continue ;
181
+ }
182
+ } ;
183
+ if let Some ( ref regex) = include_regex {
184
+ if !regex. is_match ( & topic) {
185
+ continue ;
189
186
}
190
- if let Some ( ref regex ) = exclude_regex {
191
- if regex. is_match ( & topic ) {
192
- continue ;
193
- }
187
+ }
188
+ if let Some ( ref regex) = exclude_regex {
189
+ if regex . is_match ( & topic ) {
190
+ continue ;
194
191
}
195
- format_mqtt_log_entry ( & topic, & payload) ;
196
192
}
197
- _ => ( ) ,
193
+ format_mqtt_log_entry ( & topic , & payload ) ;
198
194
}
199
195
}
200
196
} ) ;
@@ -217,7 +213,7 @@ async fn main() -> Result<(), Box<dyn Error>> {
217
213
let receiver = iot_core_client. lock ( ) . await . get_receiver ( ) . await ;
218
214
let receiver = Arc :: new ( Mutex :: new ( receiver) ) ;
219
215
let drain_task = task:: spawn ( async move {
220
- loop {
216
+ while ( receiver . lock ( ) . await . recv ( ) . await ) . is_ok ( ) {
221
217
match receiver. lock ( ) . await . recv ( ) . await {
222
218
Ok ( _) => { } // Ignore incoming events
223
219
Err ( _) => break , // Exit if the channel is closed
0 commit comments