slightly better error handling in main
parent
5d62329e42
commit
f4a3a46c71
14
src/main.rs
14
src/main.rs
|
@ -14,7 +14,7 @@ use terminal::Terminal;
|
||||||
use pane::prelude::*;
|
use pane::prelude::*;
|
||||||
|
|
||||||
use std::fs::{remove_file, OpenOptions};
|
use std::fs::{remove_file, OpenOptions};
|
||||||
use std::io::Error;
|
use std::io::{Error, ErrorKind};
|
||||||
|
|
||||||
use anyhow::{Result as AnyResult, Error as AnyError};
|
use anyhow::{Result as AnyResult, Error as AnyError};
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
|
@ -32,16 +32,22 @@ fn main() -> AnyResult<()> {
|
||||||
.create_new(true)
|
.create_new(true)
|
||||||
.open(LOG_FILE)
|
.open(LOG_FILE)
|
||||||
.map_err(|e| {
|
.map_err(|e| {
|
||||||
<Error as Into<AnyError>>::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)?;
|
let _redirect = Redirect::stderr(target)?;
|
||||||
|
|
||||||
do_tui(args)?;
|
let result = do_tui(args);
|
||||||
|
|
||||||
remove_file(LOG_FILE)?;
|
remove_file(LOG_FILE)?;
|
||||||
|
|
||||||
Ok(())
|
result.map_err(Into::into)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn do_tui(args: Args) -> Result<(), Error> {
|
fn do_tui(args: Args) -> Result<(), Error> {
|
||||||
|
|
Loading…
Reference in New Issue