Skip to content

Commit 6646568

Browse files
committed
feat(console): init error handling before subcmds (tokio-rs#365)
This way, if running a subcommand panics/errors, we still get nice `color-eyre` reports.
1 parent 23cb6bf commit 6646568

File tree

1 file changed

+8
-7
lines changed

1 file changed

+8
-7
lines changed

tokio-console/src/main.rs

+8-7
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ mod warnings;
2626
#[tokio::main]
2727
async fn main() -> color_eyre::Result<()> {
2828
let mut args = config::Config::parse()?;
29+
// initialize error handling first, in case panics occur while setting up
30+
// other stuff.
31+
let styles = view::Styles::from_config(args.view_options.clone());
32+
styles.error_init()?;
33+
34+
args.trace_init()?;
35+
tracing::debug!(?args.target_addr, ?args.view_options);
2936

3037
match args.subcmd {
3138
Some(config::OptionalCmd::GenConfig) => {
@@ -40,16 +47,10 @@ async fn main() -> color_eyre::Result<()> {
4047
None => {}
4148
}
4249

43-
let retain_for = args.retain_for();
44-
args.trace_init()?;
45-
tracing::debug!(?args.target_addr, ?args.view_options);
46-
4750
let target = args.target_addr();
4851
tracing::info!(?target, "using target addr");
4952

50-
let styles = view::Styles::from_config(args.view_options);
51-
styles.error_init()?;
52-
53+
let retain_for = args.retain_for();
5354
let (mut terminal, _cleanup) = term::init_crossterm()?;
5455
terminal.clear()?;
5556
let mut conn = conn::Connection::new(target);

0 commit comments

Comments
 (0)