From 881e7399b2417c32fa996d94c6b389c1e06d8eb1 Mon Sep 17 00:00:00 2001 From: 魏曹先生 <1992414357@qq.com> Date: Tue, 28 Apr 2026 16:18:12 +0800 Subject: Add scaffolding CLI tool `mling` --- mling/src/cli/refresh.rs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 mling/src/cli/refresh.rs (limited to 'mling/src/cli/refresh.rs') diff --git a/mling/src/cli/refresh.rs b/mling/src/cli/refresh.rs new file mode 100644 index 0000000..368670e --- /dev/null +++ b/mling/src/cli/refresh.rs @@ -0,0 +1,32 @@ +use mingling::{ + ShellContext, Suggest, + macros::{chain, completion, dispatcher, pack, suggest}, + parser::Picker, +}; + +use crate::{ThisProgram, project_installer::install_all}; + +dispatcher!("refresh", RefreshCommand => RefreshEntry); + +pack!(ResultRefreshCompleted = ()); + +#[completion(RefreshEntry)] +pub(crate) fn comp_refresh(ctx: &ShellContext) -> Suggest { + if ctx.typing_argument() { + return suggest! { + "--clean": "Clean build artifacts before installation", + "-c": "Clean build artifacts before installation", + }; + } + return suggest!(); +} + +#[chain] +pub(crate) fn handle_refresh_entry(prev: RefreshEntry) -> NextProcess { + let is_clean_before_build = Picker::new(prev.inner) + .pick::(["--clean", "-c"]) + .unpack(); + let _ = install_all(is_clean_before_build); + + ResultRefreshCompleted::new(()) +} -- cgit