From f4a3a46c71225303c5b27b2aa0774ed4c89ed421 Mon Sep 17 00:00:00 2001 From: nick Date: Sat, 5 Oct 2024 20:57:44 -0400 Subject: [PATCH] slightly better error handling in main --- src/main.rs | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 05a1225..175b3fc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,7 +14,7 @@ use terminal::Terminal; use pane::prelude::*; use std::fs::{remove_file, OpenOptions}; -use std::io::Error; +use std::io::{Error, ErrorKind}; use anyhow::{Result as AnyResult, Error as AnyError}; use clap::Parser; @@ -32,16 +32,22 @@ fn main() -> AnyResult<()> { .create_new(true) .open(LOG_FILE) .map_err(|e| { - >::into(e).context(LOG_FILE).context(LOG_EXISTS_MSG) + let kind = e.kind(); + let result = AnyError::from(e).context(LOG_FILE); + if kind == ErrorKind::AlreadyExists { + result.context(LOG_EXISTS_MSG) + } else { + result + } })?; let _redirect = Redirect::stderr(target)?; - do_tui(args)?; + let result = do_tui(args); remove_file(LOG_FILE)?; - - Ok(()) + + result.map_err(Into::into) } fn do_tui(args: Args) -> Result<(), Error> {