diff --git a/crates/nu-command/src/filesystem/cp.rs b/crates/nu-command/src/filesystem/cp.rs index 8c6ea0655a..80d2b39552 100644 --- a/crates/nu-command/src/filesystem/cp.rs +++ b/crates/nu-command/src/filesystem/cp.rs @@ -1,7 +1,7 @@ use std::env::current_dir; use std::path::PathBuf; -use super::interactive_helper::get_confirmation; +use super::util::get_interactive_confirmation; use nu_engine::CallExt; use nu_path::canonicalize_with; use nu_protocol::ast::Call; @@ -88,7 +88,7 @@ impl Command for Cp { destination.file_name().unwrap().to_str().unwrap() ); - let input = get_confirmation(prompt)?; + let input = get_interactive_confirmation(prompt)?; if !input { remove.push(index); diff --git a/crates/nu-command/src/filesystem/interactive_helper.rs b/crates/nu-command/src/filesystem/interactive_helper.rs deleted file mode 100644 index 939caa5658..0000000000 --- a/crates/nu-command/src/filesystem/interactive_helper.rs +++ /dev/null @@ -1,26 +0,0 @@ -use dialoguer::Input; -use std::error::Error; - -pub fn get_confirmation(prompt: String) -> Result> { - let input = Input::new() - .with_prompt(prompt) - .validate_with(|c_input: &String| -> Result<(), String> { - if c_input.len() == 1 - && (c_input == "y" || c_input == "Y" || c_input == "n" || c_input == "N") - { - Ok(()) - } else if c_input.len() > 1 { - Err("Enter only one letter (Y/N)".to_string()) - } else { - Err("Input not valid".to_string()) - } - }) - .default("Y/N".into()) - .interact_text()?; - - if input == "y" || input == "Y" { - Ok(true) - } else { - Ok(false) - } -} diff --git a/crates/nu-command/src/filesystem/mod.rs b/crates/nu-command/src/filesystem/mod.rs index 9649859945..db5bc4bea6 100644 --- a/crates/nu-command/src/filesystem/mod.rs +++ b/crates/nu-command/src/filesystem/mod.rs @@ -1,6 +1,5 @@ mod cd; mod cp; -mod interactive_helper; mod ls; mod mkdir; mod mv; diff --git a/crates/nu-command/src/filesystem/mv.rs b/crates/nu-command/src/filesystem/mv.rs index fe9b919432..c9f46cd874 100644 --- a/crates/nu-command/src/filesystem/mv.rs +++ b/crates/nu-command/src/filesystem/mv.rs @@ -1,7 +1,7 @@ use std::env::current_dir; use std::path::{Path, PathBuf}; -use super::interactive_helper::get_confirmation; +use super::util::get_interactive_confirmation; use nu_engine::CallExt; use nu_protocol::ast::Call; use nu_protocol::engine::{Command, EvaluationContext}; @@ -74,7 +74,7 @@ impl Command for Mv { destination.file_name().unwrap().to_str().unwrap() ); - let input = get_confirmation(prompt)?; + let input = get_interactive_confirmation(prompt)?; if !input { remove.push(index); diff --git a/crates/nu-command/src/filesystem/rm.rs b/crates/nu-command/src/filesystem/rm.rs index 48d9126700..0beb63f153 100644 --- a/crates/nu-command/src/filesystem/rm.rs +++ b/crates/nu-command/src/filesystem/rm.rs @@ -3,7 +3,7 @@ use std::env::current_dir; use std::os::unix::prelude::FileTypeExt; use std::path::PathBuf; -use super::interactive_helper::get_confirmation; +use super::util::get_interactive_confirmation; use nu_engine::CallExt; use nu_protocol::ast::Call; @@ -134,7 +134,7 @@ fn rm(context: &EvaluationContext, call: &Call) -> Result { file.1.file_name().unwrap().to_str().unwrap() ); - let input = get_confirmation(prompt)?; + let input = get_interactive_confirmation(prompt)?; if !input { remove.push(index); diff --git a/crates/nu-command/src/filesystem/util.rs b/crates/nu-command/src/filesystem/util.rs index a2d217cf05..8910314fab 100644 --- a/crates/nu-command/src/filesystem/util.rs +++ b/crates/nu-command/src/filesystem/util.rs @@ -3,6 +3,9 @@ use std::path::{Path, PathBuf}; use nu_path::canonicalize_with; use nu_protocol::ShellError; +use dialoguer::Input; +use std::error::Error; + #[derive(Default)] pub struct FileStructure { pub resources: Vec, @@ -79,3 +82,27 @@ pub struct Resource { } impl Resource {} + +pub fn get_interactive_confirmation(prompt: String) -> Result> { + let input = Input::new() + .with_prompt(prompt) + .validate_with(|c_input: &String| -> Result<(), String> { + if c_input.len() == 1 + && (c_input == "y" || c_input == "Y" || c_input == "n" || c_input == "N") + { + Ok(()) + } else if c_input.len() > 1 { + Err("Enter only one letter (Y/N)".to_string()) + } else { + Err("Input not valid".to_string()) + } + }) + .default("Y/N".into()) + .interact_text()?; + + if input == "y" || input == "Y" { + Ok(true) + } else { + Ok(false) + } +}