use crate::commands::command::RunnablePerItemContext; use crate::errors::ShellError; use crate::parser::registry::{CommandRegistry, Signature}; use crate::prelude::*; use std::path::PathBuf; pub struct Mkdir; #[derive(Deserialize)] pub struct MkdirArgs { pub rest: Vec>, } impl PerItemCommand for Mkdir { fn run( &self, call_info: &CallInfo, _registry: &CommandRegistry, raw_args: &RawCommandArgs, _input: Tagged, ) -> Result { call_info.process(&raw_args.shell_manager, mkdir)?.run() } fn name(&self) -> &str { "mkdir" } fn signature(&self) -> Signature { Signature::build("mkdir").rest(SyntaxType::Path) } } fn mkdir(args: MkdirArgs, context: &RunnablePerItemContext) -> Result { let shell_manager = context.shell_manager.clone(); shell_manager.mkdir(args, context) }