From dccb859175c32cea9aded9b7e54354f37f282368 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Sun, 7 Jun 2026 16:18:54 +0800 Subject: Replace show.workspace with show.workspace-dir command --- mling/src/proj_mgr/show_directories.rs | 55 ++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 mling/src/proj_mgr/show_directories.rs (limited to 'mling/src/proj_mgr/show_directories.rs') 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()); +} -- cgit