nu_command/filesystem/idx/
dirs.rs1use super::state::stream_dirs;
2use nu_engine::command_prelude::*;
3#[derive(Clone)]
4pub struct IdxDirs;
5
6impl Command for IdxDirs {
7 fn name(&self) -> &str {
8 "idx dirs"
9 }
10
11 fn signature(&self) -> Signature {
12 Signature::build(self.name())
13 .optional(
14 "query",
15 SyntaxShape::String,
16 "Optional fuzzy query to filter indexed directories.",
17 )
18 .input_output_types(vec![(Type::Nothing, Type::List(Box::new(Type::record())))])
19 .category(Category::FileSystem)
20 }
21
22 fn description(&self) -> &str {
23 "List indexed directories, or fuzzy-match directories by query."
24 }
25
26 fn examples(&self) -> Vec<Example<'_>> {
27 vec![
28 Example {
29 description: "List all indexed directories",
30 example: "idx dirs",
31 result: None,
32 },
33 Example {
34 description: "Fuzzy-match indexed directories by query",
35 example: "idx dirs src",
36 result: None,
37 },
38 ]
39 }
40
41 fn run(
42 &self,
43 engine_state: &EngineState,
44 stack: &mut Stack,
45 call: &Call,
46 _input: PipelineData,
47 ) -> Result<PipelineData, ShellError> {
48 let query = call.opt::<String>(engine_state, stack, 0)?;
49 let signals = engine_state.signals();
50 stream_dirs(query, call.head, signals)
51 }
52}