diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-03-26 16:24:04 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-03-26 16:24:04 +0800 |
| commit | c0e321067a1a19754041ac7996267adfea881037 (patch) | |
| tree | bb9f8de7e3129ed5de2b465c5570f38599b0e1e2 /src/cmds/cmd/workspace_here.rs | |
| parent | ba08a376182c839479e6e81cc60c5a0d24865f7f (diff) | |
Add workspace here command and alias documentation
Diffstat (limited to 'src/cmds/cmd/workspace_here.rs')
| -rw-r--r-- | src/cmds/cmd/workspace_here.rs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/cmds/cmd/workspace_here.rs b/src/cmds/cmd/workspace_here.rs new file mode 100644 index 0000000..dde5bab --- /dev/null +++ b/src/cmds/cmd/workspace_here.rs @@ -0,0 +1,50 @@ +use crate::{ + cmd_output, + cmds::{ + arg::empty::JVEmptyArgument, collect::workspace::JVWorkspaceCollect, + converter::space_error::JVSpaceErrorConverter, r#in::empty::JVEmptyInput, + out::path::JVPathOutput, + }, + systems::{ + cmd::{ + cmd_system::{AnyOutput, JVCommandContext}, + errors::{CmdExecuteError, CmdPrepareError}, + }, + helpdoc::helpdoc_viewer, + }, +}; +use cmd_system_macros::exec; +use just_enough_vcs::system::workspace::workspace::manager::WorkspaceManager; + +pub struct JVWorkspaceHereCommand; +type Cmd = JVWorkspaceHereCommand; +type Arg = JVEmptyArgument; +type In = JVEmptyInput; +type Collect = JVWorkspaceCollect; + +async fn help_str() -> String { + helpdoc_viewer::display("commands/workspace_here").await; + String::new() +} + +async fn prepare(_args: &Arg, _ctx: &JVCommandContext) -> Result<In, CmdPrepareError> { + Ok(JVEmptyInput) +} + +async fn collect(_args: &Arg, _ctx: &JVCommandContext) -> Result<Collect, CmdPrepareError> { + Ok(JVWorkspaceCollect { + manager: WorkspaceManager::new(), + }) +} + +#[exec] +async fn exec(_input: In, collect: Collect) -> Result<AnyOutput, CmdExecuteError> { + let path = collect + .manager + .get_space() + .space_dir_current() + .map_err(JVSpaceErrorConverter::to_exec_error)?; + cmd_output!(JVPathOutput => JVPathOutput { path }) +} + +crate::command_template!(); |
