fix crash on missing selection in file mode
This commit is contained in:
parent
e8f90a3ba3
commit
f55e04c219
2 changed files with 19 additions and 23 deletions
|
@ -1,7 +1,7 @@
|
|||
use std::fmt;
|
||||
|
||||
/// Defines error the lib can encounter
|
||||
#[derive(Debug)]
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub enum Error {
|
||||
/// Failed to update a cache file with the given reason.
|
||||
UpdateCacheError(String),
|
||||
|
|
40
src/main.rs
40
src/main.rs
|
@ -2,7 +2,7 @@ use std::env;
|
|||
|
||||
use anyhow::anyhow;
|
||||
use worf_lib::config::Mode;
|
||||
use worf_lib::{config, mode};
|
||||
use worf_lib::{Error, config, mode};
|
||||
fn main() -> anyhow::Result<()> {
|
||||
env_logger::Builder::new()
|
||||
.parse_filters(&env::var("RUST_LOG").unwrap_or_else(|_| "error".to_owned()))
|
||||
|
@ -13,30 +13,26 @@ fn main() -> anyhow::Result<()> {
|
|||
let config = config::load_config(Some(&args)).unwrap_or(args);
|
||||
|
||||
if let Some(show) = &config.show() {
|
||||
match show {
|
||||
Mode::Run => {
|
||||
mode::run(&config).map_err(|e| anyhow!(e))?;
|
||||
}
|
||||
Mode::Drun => {
|
||||
mode::d_run(&config).map_err(|e| anyhow!(e))?;
|
||||
}
|
||||
Mode::Dmenu => {
|
||||
mode::dmenu(&config).map_err(|e| anyhow!(e))?;
|
||||
}
|
||||
Mode::File => {
|
||||
mode::file(&config).map_err(|e| anyhow!(e))?;
|
||||
}
|
||||
let result = match show {
|
||||
Mode::Run => mode::run(&config),
|
||||
Mode::Drun => mode::d_run(&config),
|
||||
Mode::Dmenu => mode::dmenu(&config),
|
||||
Mode::File => mode::file(&config),
|
||||
Mode::Math => {
|
||||
mode::math(&config);
|
||||
Ok(())
|
||||
}
|
||||
Mode::Ssh => {
|
||||
mode::ssh(&config).map_err(|e| anyhow!(e))?;
|
||||
}
|
||||
Mode::Emoji => {
|
||||
mode::emoji(&config).map_err(|e| anyhow!(e))?;
|
||||
}
|
||||
Mode::Auto => {
|
||||
mode::auto(&config).map_err(|e| anyhow!(e))?;
|
||||
Mode::Ssh => mode::ssh(&config),
|
||||
Mode::Emoji => mode::emoji(&config),
|
||||
Mode::Auto => mode::auto(&config),
|
||||
};
|
||||
|
||||
if let Err(err) = result {
|
||||
if err == Error::NoSelection {
|
||||
log::info!("no selection made");
|
||||
} else {
|
||||
log::error!("Error occurred {err:?}");
|
||||
return Err(anyhow!("Error occurred {err:?}"));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue