aboutsummaryrefslogtreecommitdiff
path: root/mling/src/cli/namespace_mgr.rs
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-07 02:25:27 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-07 02:25:27 +0800
commit81528b273c18693ebd3f05c6f8057ff8e632f4a0 (patch)
tree85026c27535337c0123d4650c844ae364bc9780a /mling/src/cli/namespace_mgr.rs
parente41e8bda221b44d09d7e93ffc43675147ab60a6d (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.rs128
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!")
-}