diff options
Diffstat (limited to 'src/actions/delete.rs')
-rw-r--r-- | src/actions/delete.rs | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/src/actions/delete.rs b/src/actions/delete.rs deleted file mode 100644 index ac2065a..0000000 --- a/src/actions/delete.rs +++ /dev/null @@ -1,68 +0,0 @@ -use crate::input; -use crate::backup::backup; -use crate::KhResult; -use crate::khline::KhLine; -use crate::utils::stdioutils; - -use std::path::PathBuf; -use std::fs::remove_file; - -pub fn do_delete() -> KhResult<()> { - info!("do_delete"); - - let cursor_khline = input::default_input_khline()?; - - delete_file(cursor_khline) -} - -fn delete_file(khline: KhLine) -> KhResult<()> { - - if ask_really_delete(&khline.path) { - let backup_path = backup(&khline).unwrap(); - info!("Backup written to {}", backup_path.display()); - - remove_file(khline.path.clone())?; - info!("deleted {:#?}", khline.get_normalized_path()); - } - - Ok(()) -} - -fn ask_really_delete(path: &PathBuf) -> bool { - if cfg!(test) { return true }; - - println!("Really delete {:#?}? y/n:", path); - - match stdioutils::read_single_char_from_stdin().unwrap() { - 'y' => true, - _ => false - } -} - -#[cfg(test)] -mod tests { - use super::*; - - use crate::testutils::*; - use assert_fs::prelude::*; - use predicates::prelude::*; - - #[test] - fn test_do_delete_cursor() { - let testdir = prepare_testdir("testdir_with_cursor"); - - do_delete().unwrap(); - - let predicate = predicate::path::missing(); - testdir.child(".khaleesi/cal/twodaysacrossbuckets").assert(predicate); - - } - - #[test] - #[should_panic] - fn test_do_delete_no_cursor() { - let _testdir = prepare_testdir("testdir"); - - do_delete().unwrap(); - } -} |