aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--atuin/src/command/client/search.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/atuin/src/command/client/search.rs b/atuin/src/command/client/search.rs
index 2297d81b..eedf4f8b 100644
--- a/atuin/src/command/client/search.rs
+++ b/atuin/src/command/client/search.rs
@@ -104,6 +104,18 @@ pub struct Cmd {
impl Cmd {
pub async fn run(self, db: impl Database, settings: &mut Settings) -> Result<()> {
+ if (self.delete_it_all || self.delete) && self.limit.is_some() {
+ // Because of how deletion is implemented, it will always delete all matches
+ // and disregard the limit option. It is also not clear what deletion with a
+ // limit would even mean. Deleting the LIMIT most recent entries that match
+ // the search query would make sense, but that wouldn't match what's displayed
+ // when running the equivalent search, but deleting those entries that are
+ // displayed with the search would leave any duplicates of those lines which may
+ // or may not have been intended to be deleted.
+ println!("\"--limit\" is not compatible with deletion.");
+ return Ok(());
+ }
+
if self.delete && self.query.is_empty() {
println!("Please specify a query to match the items you wish to delete. If you wish to delete all history, pass --delete-it-all");
return Ok(());