diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-07 16:18:54 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-07 16:18:54 +0800 |
| commit | dccb859175c32cea9aded9b7e54354f37f282368 (patch) | |
| tree | 6f599490a245314c874bedc430ca90e6bedffc6f /mling/src/proj_mgr/show_directories.rs | |
| parent | 86647e7b5057826d7bb85381044d5b691fbbafa3 (diff) | |
Replace show.workspace with show.workspace-dir command
Diffstat (limited to 'mling/src/proj_mgr/show_directories.rs')
| -rw-r--r-- | mling/src/proj_mgr/show_directories.rs | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/mling/src/proj_mgr/show_directories.rs b/mling/src/proj_mgr/show_directories.rs new file mode 100644 index 0000000..32020c9 --- /dev/null +++ b/mling/src/proj_mgr/show_directories.rs @@ -0,0 +1,55 @@ +use colored::Colorize; +use mingling::{ + Groupped, + macros::{chain, pack, r_println, renderer}, +}; +use serde::Serialize; + +use crate::{ + EntryShowTargetDirectories, EntryShowWorkspaceDirectory, Next, metadata::read_metadata, + res::ResManifestPath, +}; + +#[derive(Serialize, Groupped)] +pub struct ResultWorkspaceDirectory { + pub path: String, +} + +#[derive(Serialize, Groupped)] +pub struct ResultTargetDirectory { + pub path: String, +} + +#[chain] +pub fn handle_show_workspace_directory( + _args: EntryShowWorkspaceDirectory, + manifest_path: &ResManifestPath, +) -> Next { + let metadata = read_metadata(manifest_path.resolved()).unwrap(); + ResultWorkspaceDirectory { + path: metadata.workspace_root, + } + .to_render() +} + +#[chain] +pub fn handle_show_target_directory( + _args: EntryShowTargetDirectories, + manifest_path: &ResManifestPath, +) -> Next { + let metadata = read_metadata(manifest_path.resolved()).unwrap(); + ResultTargetDirectory { + path: metadata.target_directory, + } + .to_render() +} + +#[renderer] +pub fn render_workspace_directory(prev: ResultWorkspaceDirectory) { + r_println!("{}", prev.path.bright_cyan().bold()); +} + +#[renderer] +pub fn render_target_directory(prev: ResultTargetDirectory) { + r_println!("{}", prev.path.bright_cyan().bold()); +} |
