diff options
| author | Miquel Sabaté Solà <mssola@mssola.com> | 2026-01-24 22:33:30 +0100 |
|---|---|---|
| committer | Miquel Sabaté Solà <mssola@mssola.com> | 2026-01-24 22:33:30 +0100 |
| commit | 108bc6f0446c351b421ba62367e0f4eaf6c62461 (patch) | |
| tree | b2febcf881ed5a3b16518a7bde77a541e046da5f /crates | |
| parent | f310205a283cae4b9675801f4c6e32817a2536a7 (diff) | |
| download | mihi-108bc6f0446c351b421ba62367e0f4eaf6c62461.tar.gz mihi-108bc6f0446c351b421ba62367e0f4eaf6c62461.zip | |
words: delete all relationships on 'rm'
When removing a word, all relationships with other words and tags should
also be cleared. Not that it would litter too much the
database (considering the DB is relatively small), but it doesn't take
too much effort to play nice here.
Signed-off-by: Miquel Sabaté Solà <mssola@mssola.com>
Diffstat (limited to 'crates')
| -rw-r--r-- | crates/cli/src/words.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/crates/cli/src/words.rs b/crates/cli/src/words.rs index a54e679..1567612 100644 --- a/crates/cli/src/words.rs +++ b/crates/cli/src/words.rs @@ -1010,6 +1010,15 @@ fn rm(mut args: IntoIter<String>) -> i32 { } }; + // Fetch the word object for it which will serve as the initial values. + let word = match mihi::find_by(selection.as_str()) { + Ok(word) => word, + Err(e) => { + println!("error: words: {e}"); + return 1; + } + }; + let ans = Confirm::new( format!("Do you really want to remove '{selection}' from the database?").as_str(), ) @@ -1017,7 +1026,7 @@ fn rm(mut args: IntoIter<String>) -> i32 { .prompt(); match ans { - Ok(true) => match mihi::delete_word(&selection) { + Ok(true) => match mihi::delete_word(&word) { Ok(_) => println!("Removed '{selection}' from the database!"), Err(e) => { println!("error: words: {e}"); |
