diff --git a/src/command/history.rs b/src/command/history.rs index 7542496..5a943de 100644 --- a/src/command/history.rs +++ b/src/command/history.rs @@ -42,6 +42,9 @@ pub enum Cmd { #[structopt(long, short)] human: bool, + + #[structopt(long, about = "Show only the text of the command")] + cmd_only: bool, }, #[structopt( @@ -51,11 +54,14 @@ pub enum Cmd { Last { #[structopt(long, short)] human: bool, + + #[structopt(long, about = "Show only the text of the command")] + cmd_only: bool, }, } #[allow(clippy::clippy::cast_sign_loss)] -pub fn print_list(h: &[History], human: bool) { +pub fn print_list(h: &[History], human: bool, cmd_only: bool) { let mut writer = TabWriter::new(std::io::stdout()).padding(2); let lines = h.iter().map(|h| { @@ -73,6 +79,8 @@ pub fn print_list(h: &[History], human: bool) { h.command.trim(), duration, ) + } else if cmd_only { + format!("{}\n", h.command.trim()) } else { format!( "{}\t{}\t{}\n", @@ -145,6 +153,7 @@ impl Cmd { session, cwd, human, + cmd_only, } => { let params = (session, cwd); let cwd = env::current_dir()?.display().to_string(); @@ -165,14 +174,14 @@ impl Cmd { (true, true) => db.query_history(query_session_dir.as_str()).await?, }; - print_list(&history, *human); + print_list(&history, *human, *cmd_only); Ok(()) } - Self::Last { human } => { + Self::Last { human, cmd_only } => { let last = db.last().await?; - print_list(&[last], *human); + print_list(&[last], *human, *cmd_only); Ok(()) } diff --git a/src/command/mod.rs b/src/command/mod.rs index 8af64cb..161c99d 100644 --- a/src/command/mod.rs +++ b/src/command/mod.rs @@ -69,6 +69,9 @@ pub enum AtuinCmd { human: bool, query: Vec<String>, + + #[structopt(long, about = "Show only the text of the command")] + cmd_only: bool, }, #[structopt(about = "sync with the configured server")] @@ -112,6 +115,7 @@ impl AtuinCmd { before, after, query, + cmd_only, } => { search::run( &client_settings, @@ -123,6 +127,7 @@ impl AtuinCmd { exclude_cwd, before, after, + cmd_only, &query, &mut db, ) diff --git a/src/command/search.rs b/src/command/search.rs index f49f16e..b45e366 100644 --- a/src/command/search.rs +++ b/src/command/search.rs @@ -329,6 +329,7 @@ pub async fn run( exclude_cwd: Option<String>, before: Option<String>, after: Option<String>, + cmd_only: bool, query: &[String], db: &mut (impl Database + Send + Sync), ) -> Result<()> { @@ -412,7 +413,7 @@ pub async fn run( .map(std::borrow::ToOwned::to_owned) .collect(); - super::history::print_list(&results, human); + super::history::print_list(&results, human, cmd_only); } Ok(())