diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-07 02:25:27 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-07 02:25:27 +0800 |
| commit | 81528b273c18693ebd3f05c6f8057ff8e632f4a0 (patch) | |
| tree | 85026c27535337c0123d4650c844ae364bc9780a /mling/src/cli/namespace_mgr.rs | |
| parent | e41e8bda221b44d09d7e93ffc43675147ab60a6d (diff) | |
Refactor mling to use new program architecture and install scripts
Diffstat (limited to 'mling/src/cli/namespace_mgr.rs')
| -rw-r--r-- | mling/src/cli/namespace_mgr.rs | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/mling/src/cli/namespace_mgr.rs b/mling/src/cli/namespace_mgr.rs deleted file mode 100644 index 4ea2229..0000000 --- a/mling/src/cli/namespace_mgr.rs +++ /dev/null @@ -1,128 +0,0 @@ -use mingling::{ - ShellContext, Suggest, SuggestItem, - macros::{chain, completion, dispatcher, pack, r_println, renderer, route, suggest}, - parser::{Picker, Yes}, -}; - -use crate::{ - Next, - namespace_manager::{list_namespaces, remove_namespace, set_namespace_trusted}, -}; - -dispatcher!("trust", TrustNamespaceCommand => TrustNamespaceEntry); -dispatcher!("untrust", UntrustNamespaceCommand => UntrustNamespaceEntry); - -dispatcher!("set-trust", SetTrustNamespaceCommand => SetTrustNamespaceEntry); - -dispatcher!("rm-namespace", RemoveNamespaceCommand => RemoveNamespaceEntry); - -pack!(ErrorNamespaceNotProvided = ()); -pack!(ResultNamespaceTrustChanged = ()); -pack!(ResultNamespaceRemoved = ()); - -#[completion(TrustNamespaceEntry)] -pub(crate) fn comp_trust(ctx: &ShellContext) -> Suggest { - if ctx.previous_word == "trust" { - return Suggest::Suggest( - list_namespaces(false, true, true) - .into_iter() - .map(SuggestItem::new) - .collect::<std::collections::BTreeSet<_>>(), - ); - } - return suggest!(); -} - -#[completion(UntrustNamespaceEntry)] -pub(crate) fn comp_untrust(ctx: &ShellContext) -> Suggest { - if ctx.previous_word == "untrust" { - return Suggest::Suggest( - list_namespaces(true, false, true) - .into_iter() - .map(SuggestItem::new) - .collect::<std::collections::BTreeSet<_>>(), - ); - } - return suggest!(); -} - -#[completion(SetTrustNamespaceEntry)] -pub(crate) fn comp_set_trust(ctx: &ShellContext) -> Suggest { - if ctx.typing_argument() { - return suggest!( - "-t": "Whether to trust this namespace", - "--trusted": "Whether to trust this namespace", - ); - } - if ctx.filling_argument_first(["-t", "--trusted"]) { - return suggest!("yes", "no"); - } - if ctx.previous_word == "set-trust" { - return Suggest::Suggest( - list_namespaces(true, true, true) - .into_iter() - .map(SuggestItem::new) - .collect::<std::collections::BTreeSet<_>>(), - ); - } - return suggest!(); -} - -#[completion(RemoveNamespaceEntry)] -pub(crate) fn comp_remove_namespace(ctx: &ShellContext) -> Suggest { - if ctx.previous_word == "rm-namespace" { - return Suggest::Suggest( - list_namespaces(true, true, true) - .into_iter() - .map(SuggestItem::new) - .collect::<std::collections::BTreeSet<_>>(), - ); - } - return suggest!(); -} - -#[chain] -pub(crate) fn handle_set_trust(p: SetTrustNamespaceEntry) -> Next { - let (trusted, namespace) = route!( - Picker::new(p.inner) - .pick::<Yes>(["-t", "--trusted"]) - .pick_or_route((), ErrorNamespaceNotProvided::default().to_render()) - .unpack() - ); - set_namespace_trusted(namespace, trusted.is_yes()); - ResultNamespaceTrustChanged::default().to_render() -} - -#[chain] -pub(crate) fn handle_trust(p: TrustNamespaceEntry) -> Next { - SetTrustNamespaceEntry::new({ - let mut args = p.inner.clone(); - args.extend(vec!["-t".to_string(), "yes".to_string()]); - args - }) -} - -#[chain] -pub(crate) fn handle_untrust(p: UntrustNamespaceEntry) -> Next { - SetTrustNamespaceEntry::new({ - let mut args = p.inner.clone(); - args.extend(vec!["-t".to_string(), "no".to_string()]); - args - }) -} - -#[chain] -pub(crate) fn handle_remove_namespace(p: RemoveNamespaceEntry) -> Next { - let namespace = route!( - Picker::new(p.inner) - .pick_or_route((), ErrorNamespaceNotProvided::default().to_render()) - .unpack() - ); - remove_namespace(namespace); - ResultNamespaceRemoved::default().to_render() -} - -#[renderer] -pub(crate) fn render_error_namespace_not_provided(_prev: ErrorNamespaceNotProvided) { - r_println!("Error: no namespace was provided!") -} |
