From 20469121609a6c6155553c6a15bc3605c00c3107 Mon Sep 17 00:00:00 2001 From: Wind Date: Wed, 20 Mar 2024 21:15:02 +0800 Subject: [PATCH] remove str escape-glob command (#12241) This is a follow up to #12018 --- crates/nu-command/src/default_context.rs | 1 - .../src/strings/str_/escape_glob.rs | 102 ------------------ crates/nu-command/src/strings/str_/mod.rs | 2 - 3 files changed, 105 deletions(-) delete mode 100644 crates/nu-command/src/strings/str_/escape_glob.rs diff --git a/crates/nu-command/src/default_context.rs b/crates/nu-command/src/default_context.rs index 9cda14d3a5..c7a5f862ca 100644 --- a/crates/nu-command/src/default_context.rs +++ b/crates/nu-command/src/default_context.rs @@ -179,7 +179,6 @@ pub fn add_shell_command_context(mut engine_state: EngineState) -> EngineState { SplitColumn, SplitRow, SplitWords, - StrEscapeGlob, Str, StrCapitalize, StrContains, diff --git a/crates/nu-command/src/strings/str_/escape_glob.rs b/crates/nu-command/src/strings/str_/escape_glob.rs deleted file mode 100644 index cf6fc8a3c5..0000000000 --- a/crates/nu-command/src/strings/str_/escape_glob.rs +++ /dev/null @@ -1,102 +0,0 @@ -use nu_cmd_base::input_handler::{operate, CmdArgument}; -use nu_engine::CallExt; -use nu_protocol::ast::Call; -use nu_protocol::ast::CellPath; -use nu_protocol::engine::{Command, EngineState, Stack}; -use nu_protocol::Category; -use nu_protocol::{Example, PipelineData, ShellError, Signature, Span, SyntaxShape, Type, Value}; - -#[derive(Clone)] -pub struct SubCommand; - -struct Arguments { - cell_paths: Option>, -} - -impl CmdArgument for Arguments { - fn take_cell_paths(&mut self) -> Option> { - self.cell_paths.take() - } -} - -impl Command for SubCommand { - fn name(&self) -> &str { - "str escape-glob" - } - - fn signature(&self) -> Signature { - Signature::build("str escape-glob") - .input_output_types(vec![ - (Type::String, Type::String), - ( - Type::List(Box::new(Type::String)), - Type::List(Box::new(Type::String)), - ), - (Type::Table(vec![]), Type::Table(vec![])), - (Type::Record(vec![]), Type::Record(vec![])), - ]) - .allow_variants_without_examples(true) - .rest( - "rest", - SyntaxShape::CellPath, - "For a data structure input, turn strings at the given cell paths into substrings.", - ) - .category(Category::Strings) - } - - fn usage(&self) -> &str { - "Escape glob pattern." - } - - fn search_terms(&self) -> Vec<&str> { - vec!["pattern", "list", "ls"] - } - - fn run( - &self, - engine_state: &EngineState, - stack: &mut Stack, - call: &Call, - input: PipelineData, - ) -> Result { - nu_protocol::report_error_new( - engine_state, - &ShellError::GenericError { - error: "str escape-glob is deprecated".into(), - msg: "if you are trying to escape a variable, you don't need to do it now".into(), - span: Some(call.head), - help: Some("Remove `str escape-glob` call".into()), - inner: vec![], - }, - ); - let cell_paths: Vec = call.rest(engine_state, stack, 0)?; - let cell_paths = (!cell_paths.is_empty()).then_some(cell_paths); - let args = Arguments { cell_paths }; - operate(action, args, input, call.head, engine_state.ctrlc.clone()) - } - - fn examples(&self) -> Vec { - vec![Example { - description: "escape glob pattern before list", - example: r#"let f = 'test[a]'; ls ($f | str escape-glob)"#, - result: None, - }] - } -} - -fn action(input: &Value, _args: &Arguments, head: Span) -> Value { - match input { - Value::String { val: s, .. } => Value::string(nu_glob::Pattern::escape(s), input.span()), - // Propagate errors by explicitly matching them before the final case. - Value::Error { .. } => input.clone(), - other => Value::error( - ShellError::OnlySupportsThisInputType { - exp_input_type: "string".into(), - wrong_type: other.get_type().to_string(), - dst_span: head, - src_span: other.span(), - }, - head, - ), - } -} diff --git a/crates/nu-command/src/strings/str_/mod.rs b/crates/nu-command/src/strings/str_/mod.rs index c3f989361c..fb34ace833 100644 --- a/crates/nu-command/src/strings/str_/mod.rs +++ b/crates/nu-command/src/strings/str_/mod.rs @@ -2,7 +2,6 @@ mod case; mod contains; mod distance; mod ends_with; -mod escape_glob; mod expand; mod index_of; mod join; @@ -18,7 +17,6 @@ pub use case::*; pub use contains::SubCommand as StrContains; pub use distance::SubCommand as StrDistance; pub use ends_with::SubCommand as StrEndswith; -pub use escape_glob::SubCommand as StrEscapeGlob; pub use expand::SubCommand as StrExpand; pub use index_of::SubCommand as StrIndexOf; pub use join::*;