use crate::{
db::Database,
error::{WHError, WHResult},
};
use clap::Parser;
use std::env::var as env;
#[derive(Parser, Debug)]
pub struct SearchAliases {
pub pattern: Option<String>,
}
impl SearchAliases {
pub fn run(&self, database: &Database) -> WHResult<()> {
let pattern = match &self.pattern {
Some(pattern) => format!("%{}%", pattern),
None => format!("{}%", env("PWD").or(Err(WHError::NoPWD))?),
};
let alias_list = database.get_aliases_matching(pattern.as_str())?;
print!("{}", alias_list);
Ok(())
}
}