don't
5
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat(jetstream): add more options to jetstream binary

Signed-off-by: tjh <x@tjh.dev>

tjh 8cc24c31 5579e966

+49 -5
+1 -1
crates/gordian-jetstream/Cargo.toml
··· 26 26 tokio = { version = "1.48.0", features = ["macros", "rt", "sync", "time"] } 27 27 tokio-tungstenite = { version = "0.28.0", features = ["rustls-tls-native-roots"] } 28 28 tokio-util = "0.7.17" 29 - tracing-subscriber = "0.3.20" 29 + tracing-subscriber = { version = "0.3.20", features = ["env-filter"] } 30 30 zstd = { version = "0.13.3", optional = true } 31 31 32 32 [features]
+48 -4
crates/gordian-jetstream/src/main.rs
··· 9 9 #[arg(long, short = 'C', allow_negative_numbers = true)] 10 10 pub cursor: Option<i64>, 11 11 12 + /// Don't print Commit events. 13 + #[arg(long)] 14 + pub hide_commit: bool, 15 + 12 16 /// Don't print Account events. 13 17 #[arg(long)] 14 18 pub hide_account: bool, ··· 20 16 /// Don't print Identity events. 21 17 #[arg(long)] 22 18 pub hide_identity: bool, 19 + 20 + /// Print Jetstream metrics after each event. 21 + #[arg(long)] 22 + pub metrics: bool, 23 23 24 24 #[arg(long)] 25 25 pub log: Option<PathBuf>, ··· 45 37 46 38 use gordian_jetstream::Event; 47 39 use gordian_jetstream::client_config::JetstreamConfig; 40 + use tracing::level_filters::LevelFilter; 41 + use tracing_subscriber::EnvFilter; 42 + use tracing_subscriber::layer::SubscriberExt as _; 43 + use tracing_subscriber::util::SubscriberInitExt as _; 48 44 49 45 #[tokio::main(flavor = "current_thread")] 50 46 async fn main() { 51 - tracing_subscriber::fmt::init(); 47 + let filter = EnvFilter::builder() 48 + .with_default_directive(LevelFilter::INFO.into()) 49 + .from_env_lossy(); 50 + 51 + let stderr = tracing_subscriber::fmt::layer() 52 + .with_writer(std::io::stderr) 53 + .without_time(); 54 + 55 + tracing_subscriber::registry() 56 + .with(filter) 57 + .with(stderr) 58 + .init(); 52 59 53 60 let arguments = cli::parse(); 54 61 let mut log = arguments ··· 109 86 writeln!(log, "{msg}").expect("Failed to write to log file"); 110 87 } 111 88 112 - if let Ok(Event::Commit(commit)) = message.deserialize() { 113 - println!("{commit:#?}"); 114 - eprintln!("{:?}", client.metrics()); 89 + let output = match message.deserialize() { 90 + Ok(Event::Commit(commit)) if arguments.hide_commit => false, 91 + Ok(Event::Commit(commit)) => { 92 + println!("{commit:#?}"); 93 + true 94 + } 95 + Ok(Event::Account(account)) if arguments.hide_account => false, 96 + Ok(Event::Account(account)) => { 97 + println!("{account:#?}"); 98 + true 99 + } 100 + Ok(Event::Identity(identity)) if arguments.hide_identity => false, 101 + Ok(Event::Identity(identity)) => { 102 + println!("{identity:#?}"); 103 + true 104 + } 105 + Err(error) => { 106 + tracing::error!(?error); 107 + true 108 + } 109 + }; 110 + 111 + if arguments.metrics && output { 112 + eprintln!("{:#?}", client.metrics()); 115 113 } 116 114 } 117 115