summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author魏曹先生 <1992414357@qq.com>2026-06-30 06:01:32 +0800
committer魏曹先生 <1992414357@qq.com>2026-06-30 06:01:32 +0800
commit8cbba8dc8900b98e23e6ee38d6f02537ba936c1c (patch)
treec5f333d67871d25833b5ddc96f1d9aae9dcdd603
parent40183e431da97fe0377b2f2e2ea47b3a14376680 (diff)
refactor(rola-cli): replace GeneralRenderer with StructuralRenderer andHEADmaster
use public modules
-rw-r--r--Cargo.lock142
-rw-r--r--rola-cli/Cargo.toml11
-rw-r--r--rola-cli/build.rs3
-rw-r--r--rola-cli/src/bin/rola.rs7
-rw-r--r--rola-cli/src/bucket_mgr.rs7
-rw-r--r--rola-cli/src/bucket_mgr/bind.rs7
-rw-r--r--rola-cli/src/bucket_mgr/bind/chains.rs34
-rw-r--r--rola-cli/src/bucket_mgr/bind/renderers.rs2
-rw-r--r--rola-cli/src/bucket_mgr/config.rs3
-rw-r--r--rola-cli/src/bucket_mgr/creation.rs8
-rw-r--r--rola-cli/src/error.rs10
-rw-r--r--rola-cli/src/error/space.rs20
-rw-r--r--rola-cli/src/lib.rs8
-rw-r--r--rola-cli/src/output.rs3
-rw-r--r--rola-cli/src/output/setup.rs21
15 files changed, 179 insertions, 107 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 564e88f..6b828e7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -77,6 +77,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
name = "bumpalo"
version = "3.20.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -84,9 +90,9 @@ checksum = "72f5acc6cb2ba439de613abc23857ec3d78374d8ed5ac84e9d11336e87da8649"
[[package]]
name = "cc"
-version = "1.2.64"
+version = "1.2.65"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dad887fd958be91b5098c0248def011f4523ab786cd411be668777e55063501f"
+checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
dependencies = [
"find-msvc-tools",
"shlex",
@@ -173,10 +179,42 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
+name = "defmt"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a6e524506490a1953d237cb87b1cfc1e46f88c18f10a22dfe0f507dc6bfc7f7f"
+dependencies = [
+ "bitflags",
+ "defmt-macros",
+]
+
+[[package]]
+name = "defmt-macros"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0a27770e9c8f719a79d8b638281f4d828f77d8fd61e0bd94451b9b85e576a0b"
+dependencies = [
+ "defmt-parser",
+ "proc-macro-error2",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "defmt-parser"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10d60334b3b2e7c9d91ef8150abfb6fa4c1c39ebbcf4a81c2e346aad939fee3e"
+dependencies = [
+ "thiserror",
+]
+
+[[package]]
name = "env_filter"
-version = "1.0.1"
+version = "2.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef"
+checksum = "900d271a03799a1ee8d1ca9b19893b48ca674a9284fefcfb85f05e74ed314217"
dependencies = [
"log",
"regex",
@@ -184,9 +222,9 @@ dependencies = [
[[package]]
name = "env_logger"
-version = "0.11.10"
+version = "0.11.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a"
+checksum = "de671bd27a75a797dc9ae289ba1e77276e75e2026408aab65185384e2d5cd3f6"
dependencies = [
"anstream",
"anstyle",
@@ -291,10 +329,11 @@ checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
[[package]]
name = "jiff"
-version = "0.2.28"
+version = "0.2.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4603d3033e49e2b0e31229fcab20a5d40089c607d975cd9c80551dc69eed9102"
+checksum = "34f877a98676d2fb664698d74cc6a51ce6c484ce8c770f05d0108ec9090aeb46"
dependencies = [
+ "defmt",
"jiff-static",
"log",
"portable-atomic",
@@ -304,9 +343,9 @@ dependencies = [
[[package]]
name = "jiff-static"
-version = "0.2.28"
+version = "0.2.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "782d32378dddf207193ac91cefb848ad41abb58195c95168e1291227a0832b47"
+checksum = "0666b5ab5ecaca213fc2a85b8c0083d9004e84ee2d5f9a7e0017aaf50986f25f"
dependencies = [
"proc-macro2",
"quote",
@@ -315,9 +354,9 @@ dependencies = [
[[package]]
name = "js-sys"
-version = "0.3.102"
+version = "0.3.103"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03d04c30968dffe80775bd4d7fb676131cd04a1fb46d2686dbffbaec2d9dfd31"
+checksum = "53b44bfcdb3f8d5837a46dae1ca9660a837176eee74a28b229bc626816589102"
dependencies = [
"cfg-if",
"futures-util",
@@ -332,11 +371,23 @@ checksum = "5454cda0d57db59778608d7a47bff5b16c6705598265869fb052b657f66cf05e"
[[package]]
name = "just_template"
-version = "0.1.3"
+version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3edb658c34b10b69c4b3b58f7ba989cd09c82c0621dee1eef51843c2327225"
+checksum = "4fb99a3c1dee7299c57b26ef927f15535da0fbc93d6deb1d1114cae1337be4fb"
dependencies = [
"just_fmt",
+ "just_template_macros",
+]
+
+[[package]]
+name = "just_template_macros"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1471eb68722ecefeb71debdde2859e8725341f171d3f42b3a98a0862ad19416e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
]
[[package]]
@@ -347,9 +398,9 @@ checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
[[package]]
name = "log"
-version = "0.4.32"
+version = "0.4.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "953f07c43838f8e6f9758cab68bf5bed85465e7587ebe0b823f1bcd81978ad3a"
+checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad"
[[package]]
name = "memchr"
@@ -360,7 +411,7 @@ checksum = "88904434abc2901f197fe8cc55f0445e7ded921dba5911dad2e2b39b48e663c4"
[[package]]
name = "mingling"
version = "0.2.0"
-source = "git+https://github.com/mingling-rs/mingling.git?rev=4be889ac2dc5263ce03bb014de24916bee2e9aa8#4be889ac2dc5263ce03bb014de24916bee2e9aa8"
+source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835"
dependencies = [
"mingling_core",
"mingling_macros",
@@ -371,10 +422,11 @@ dependencies = [
[[package]]
name = "mingling_core"
version = "0.2.0"
-source = "git+https://github.com/mingling-rs/mingling.git?rev=4be889ac2dc5263ce03bb014de24916bee2e9aa8#4be889ac2dc5263ce03bb014de24916bee2e9aa8"
+source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835"
dependencies = [
"just_fmt",
"just_template",
+ "mingling_pathf",
"serde",
"serde_json",
]
@@ -382,7 +434,7 @@ dependencies = [
[[package]]
name = "mingling_macros"
version = "0.2.0"
-source = "git+https://github.com/mingling-rs/mingling.git?rev=4be889ac2dc5263ce03bb014de24916bee2e9aa8#4be889ac2dc5263ce03bb014de24916bee2e9aa8"
+source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835"
dependencies = [
"just_fmt",
"proc-macro2",
@@ -391,6 +443,16 @@ dependencies = [
]
[[package]]
+name = "mingling_pathf"
+version = "0.2.0"
+source = "git+https://github.com/mingling-rs/mingling.git?rev=3888feded3cb83865d6161de642a1a298a7a5835#3888feded3cb83865d6161de642a1a298a7a5835"
+dependencies = [
+ "just_fmt",
+ "proc-macro2",
+ "syn",
+]
+
+[[package]]
name = "num-traits"
version = "0.2.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -433,6 +495,28 @@ dependencies = [
]
[[package]]
+name = "proc-macro-error-attr2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "proc-macro-error2"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802"
+dependencies = [
+ "proc-macro-error-attr2",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "proc-macro2"
version = "1.0.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -443,9 +527,9 @@ dependencies = [
[[package]]
name = "quote"
-version = "1.0.45"
+version = "1.0.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
+checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
dependencies = [
"proc-macro2",
]
@@ -823,9 +907,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
[[package]]
name = "wasm-bindgen"
-version = "0.2.125"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ddb3f79143bced6de84270411622a2699cee572fc0875aeaf1e7867cf9fca1a"
+checksum = "4b067c0c11094aef6b7a801c1e34a26affafdf3d051dba08456b868789aaf9a4"
dependencies = [
"cfg-if",
"once_cell",
@@ -836,9 +920,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.125"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e21a184b13fb19e157296e2c46056aec9092264fab83e4ba59e68c61b323c3d"
+checksum = "167ce5e579f6bcf889c4f7175a8a5a585de84e8ff93976ce393efa5f2837aab1"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -846,9 +930,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.125"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fecefd9c35bd935a20fc3fc344b5f29138961e4f47fb03297d88f2587afb5ebd"
+checksum = "f3997c7839262f4ef12cf90b818d6340c18e80f263f1a94bf157d0ec4420380e"
dependencies = [
"bumpalo",
"proc-macro2",
@@ -859,9 +943,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.125"
+version = "0.2.126"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23939e44bb9a5d7576fa2b563dc2e136628f1224e88a8deed09e04858b77871f"
+checksum = "dc1b4cb0cc549fcf58d7dfc081778139b3d283a081644e833e84682ad71cea24"
dependencies = [
"unicode-ident",
]
diff --git a/rola-cli/Cargo.toml b/rola-cli/Cargo.toml
index c9cf562..8ecc0f9 100644
--- a/rola-cli/Cargo.toml
+++ b/rola-cli/Cargo.toml
@@ -25,22 +25,25 @@ clap = { version = "4.6.1", features = ["derive"] }
[dependencies.mingling]
git = "https://github.com/mingling-rs/mingling.git"
-rev = "4be889ac2dc5263ce03bb014de24916bee2e9aa8"
+rev = "3888feded3cb83865d6161de642a1a298a7a5835"
features = [
"parser",
"extra_macros",
"dispatch_tree",
"comp",
"clap",
- "general_renderer"
+ "structural_renderer",
+ "pathf"
]
[build-dependencies.mingling]
git = "https://github.com/mingling-rs/mingling.git"
-rev = "4be889ac2dc5263ce03bb014de24916bee2e9aa8"
+rev = "3888feded3cb83865d6161de642a1a298a7a5835"
features = [
"builds",
- "comp"
+ "comp",
+ "dispatch_tree",
+ "pathf",
]
[build-dependencies]
diff --git a/rola-cli/build.rs b/rola-cli/build.rs
index a409a17..e49c689 100644
--- a/rola-cli/build.rs
+++ b/rola-cli/build.rs
@@ -1,11 +1,12 @@
use std::path::Path;
use std::process::Command;
-use mingling::build::build_comp_scripts;
+use mingling::build::{analyze_and_build_type_mapping, build_comp_scripts};
fn main() {
build_version_info();
build_completion();
+ analyze_and_build_type_mapping().unwrap();
}
fn build_version_info() {
diff --git a/rola-cli/src/bin/rola.rs b/rola-cli/src/bin/rola.rs
index 3e97468..635aa7d 100644
--- a/rola-cli/src/bin/rola.rs
+++ b/rola-cli/src/bin/rola.rs
@@ -3,11 +3,12 @@ use std::{env::current_dir, process::exit};
use mingling::{
LazyInit, Program,
macros::program_setup,
- setup::{ExitCodeSetup, GeneralRendererSetup, HelpFlagSetup, QuietFlagSetup},
+ setup::{ExitCodeSetup, HelpFlagSetup, QuietFlagSetup, StructuralRendererSetup},
};
use rola_cli::{
ThisProgram, locale,
- output::{ColorOutputSetup, EnvLoggerSetup},
+ output::setup::ColorOutputSetup,
+ output::setup::EnvLoggerSetup,
res::{bucket::ResBucketWithoutProtocol, current_dir::ResCurrentDir, overwrite::ResOverwrite},
};
@@ -39,7 +40,7 @@ fn main() {
program.with_resource(ResBucketWithoutProtocol::lazy_default());
// Setup
- program.with_setup(GeneralRendererSetup);
+ program.with_setup(StructuralRendererSetup);
program.with_setup(HelpFlagSetup::new(["-h", "--help"]));
program.with_setup(StandardOutputSetup);
program.with_setup(ExitCodeSetup::default());
diff --git a/rola-cli/src/bucket_mgr.rs b/rola-cli/src/bucket_mgr.rs
index 82a76d4..db7a6dd 100644
--- a/rola-cli/src/bucket_mgr.rs
+++ b/rola-cli/src/bucket_mgr.rs
@@ -1,4 +1,3 @@
-mod creation;
-pub use creation::*;
-mod bind;
-pub use bind::*;
+pub mod bind;
+pub mod config;
+pub mod creation;
diff --git a/rola-cli/src/bucket_mgr/bind.rs b/rola-cli/src/bucket_mgr/bind.rs
index fefebd6..a334258 100644
--- a/rola-cli/src/bucket_mgr/bind.rs
+++ b/rola-cli/src/bucket_mgr/bind.rs
@@ -5,11 +5,8 @@ use mingling::{
use rorolala::bucket::bind::BucketBind;
use serde::Serialize;
-mod chains;
-pub use chains::*;
-
-mod renderers;
-pub use renderers::*;
+pub mod chains;
+pub mod renderers;
pub const EC_BUCKET_BIND_INDEX_NOT_PROVIDED: i32 = 251;
pub const EC_BUCKET_BIND_INDEX_NOT_FOUND: i32 = 252;
diff --git a/rola-cli/src/bucket_mgr/bind/chains.rs b/rola-cli/src/bucket_mgr/bind/chains.rs
index 881e5ba..b8037e2 100644
--- a/rola-cli/src/bucket_mgr/bind/chains.rs
+++ b/rola-cli/src/bucket_mgr/bind/chains.rs
@@ -1,16 +1,20 @@
use crate::{
Next,
- bucket_mgr::{
+ bucket_mgr::bind::{
EntryBucketBind, ErrorBucketBindIndexNotFound, ErrorBucketBindIndexNotProvided,
ResultAllBucketBind, ResultBucketOperated,
ResultEnumBucketOperation::{self, Set},
ResultOneBucketBind, StateBucketBindListAll, StateBucketBindListSpecified,
StateBucketBindRemove, StateBucketBindSet,
},
- error::{ErrorRequireOverwrite, ErrorSpace},
+ error::require_overwrite::ErrorRequireOverwrite,
+ error::space::ErrorSpace,
res::{bucket::ResBucketWithoutProtocol, overwrite::ResOverwrite},
};
-use mingling::{LazyRes, macros::chain};
+use mingling::{
+ Groupped, LazyRes,
+ macros::{chain, route},
+};
use rorolala::bucket::{self};
use shared_functions::info;
@@ -55,10 +59,10 @@ pub fn handle_state_bucket_bind_set(
let (index, url) = set.inner;
let bucket_space_ref = &bucket.get_ref().space;
- let exist = match bucket::bind::check_bucket_bind_exists(bucket_space_ref, index) {
- Ok(exists) => exists,
- Err(e) => return ErrorSpace::from(e).to_chain(),
- };
+ let exist = route!(bucket::bind::check_bucket_bind_exists(
+ bucket_space_ref,
+ index
+ ));
// When the bind already exists but overwrite is not specified
// Dispatch to ErrorRequireOverwrite
@@ -88,9 +92,7 @@ pub fn handle_state_bucket_bind_remove(
let index = remove.inner;
let bucket_space_ref = &bucket.get_ref().space;
- if let Err(space_error) = bucket::bind::remove_bucket_bind(bucket_space_ref, index) {
- return ErrorSpace::from(space_error).to_chain();
- }
+ route!(bucket::bind::remove_bucket_bind(bucket_space_ref, index));
ResultBucketOperated {
operation: ResultEnumBucketOperation::Remove,
@@ -107,10 +109,9 @@ pub fn handle_state_bucket_bind_list_specified(
) -> Next {
let index = index.inner;
let bucket_space_ref = &bucket.get_ref().space;
- let bind_info = match bucket::bind::read_bucket_bind(bucket_space_ref, index) {
- Err(e) => return ErrorSpace::from(e).to_chain(),
- Ok(None) => return ErrorBucketBindIndexNotFound::new(index).to_render(),
- Ok(Some(r)) => r,
+ let bind_info = match route!(bucket::bind::read_bucket_bind(bucket_space_ref, index)) {
+ None => return ErrorBucketBindIndexNotFound::new(index).to_render(),
+ Some(r) => r,
};
ResultOneBucketBind {
@@ -127,10 +128,7 @@ pub fn handle_state_bucket_bind_list_all(
) -> Next {
let bucket_space_ref = &bucket.get_ref().space;
info!("Reading all bucket binds from space");
- let bind_list = match bucket::bind::read_bucket_binds(bucket_space_ref) {
- Err(e) => return ErrorSpace::from(e).to_chain(),
- Ok(r) => r,
- };
+ let bind_list = route!(bucket::bind::read_bucket_binds(bucket_space_ref));
info!("Read {} bucket binds", bind_list.len());
ResultAllBucketBind { bind_list }.to_render()
}
diff --git a/rola-cli/src/bucket_mgr/bind/renderers.rs b/rola-cli/src/bucket_mgr/bind/renderers.rs
index 18ae092..cf12b7f 100644
--- a/rola-cli/src/bucket_mgr/bind/renderers.rs
+++ b/rola-cli/src/bucket_mgr/bind/renderers.rs
@@ -4,7 +4,7 @@ use mingling::{
};
use crate::{
- bucket_mgr::{
+ bucket_mgr::bind::{
EC_BUCKET_BIND_INDEX_NOT_FOUND, EC_BUCKET_BIND_INDEX_NOT_PROVIDED,
ErrorBucketBindIndexNotFound, ErrorBucketBindIndexNotProvided, ResultAllBucketBind,
ResultBucketOperated, ResultEnumBucketOperation, ResultOneBucketBind,
diff --git a/rola-cli/src/bucket_mgr/config.rs b/rola-cli/src/bucket_mgr/config.rs
new file mode 100644
index 0000000..b30620b
--- /dev/null
+++ b/rola-cli/src/bucket_mgr/config.rs
@@ -0,0 +1,3 @@
+use mingling::macros::dispatcher;
+
+dispatcher!("bucket.config");
diff --git a/rola-cli/src/bucket_mgr/creation.rs b/rola-cli/src/bucket_mgr/creation.rs
index 2394228..fd794e8 100644
--- a/rola-cli/src/bucket_mgr/creation.rs
+++ b/rola-cli/src/bucket_mgr/creation.rs
@@ -10,7 +10,7 @@ use rorolala::bucket::{Bucket, NoProtocol};
use serde::Serialize;
use space_system::{Space, SpaceError, SpaceRoot, find_space_root_with};
-use crate::{Next, error::ErrorIo, locale::I18nBucketManager, res::current_dir::ResCurrentDir};
+use crate::{Next, error::io::ErrorIo, locale::I18nBucketManager, res::current_dir::ResCurrentDir};
pub const EC_BUCKET_CREATE_DIR_NOT_EMPTY: i32 = 2400;
pub const EC_BUCKET_PATH_NOT_PROVIDED: i32 = 2401;
@@ -46,7 +46,7 @@ pub fn handle_bucket_init(_args: EntryBucketInit, cwd: &mut ResCurrentDir) -> Ne
pub fn handle_bucket_create(args: EntryBucketCreate) -> Next {
let join = route! {
args.pick_or_route::<PathBuf, _>((),
- ErrorBucketPathNotProvided::new(()).to_render()
+ ErrorBucketPathNotProvided::new(())
).unpack()
};
StateBucketCreationPrecheck::new(join).to_chain()
@@ -80,9 +80,7 @@ pub fn handle_state_bucket_creation_precheck(create: StateBucketCreationPrecheck
pub fn handle_state_bucket_creation(create: StateBucketCreation) -> Next {
let path = create.inner;
- route! {
- create_dir_all(&path).map_err(|e| ErrorIo::from(e).to_render())
- };
+ route!(create_dir_all(&path).map_err(|e| ErrorIo::from(e)));
// Use a protocol-less Bucket as a temporary Space for initialization
let bucket_space = Space::<Bucket<NoProtocol>>::new(Bucket::<NoProtocol>::new_local());
diff --git a/rola-cli/src/error.rs b/rola-cli/src/error.rs
index 15bdc70..3271744 100644
--- a/rola-cli/src/error.rs
+++ b/rola-cli/src/error.rs
@@ -1,6 +1,4 @@
-mod io;
-pub use io::*;
-mod space;
-pub use space::*;
-mod require_overwrite;
-pub use require_overwrite::*;
+pub mod io;
+pub mod require_overwrite;
+pub mod space;
+ \ No newline at end of file
diff --git a/rola-cli/src/error/space.rs b/rola-cli/src/error/space.rs
index fb0a560..b4a011d 100644
--- a/rola-cli/src/error/space.rs
+++ b/rola-cli/src/error/space.rs
@@ -1,26 +1,22 @@
use mingling::{
Groupped,
- macros::{chain, r_println, renderer},
+ macros::{chain, group, r_println, renderer},
res::ResExitCode,
};
-use serde::Serialize;
use space_system::SpaceError;
-use crate::{Next, error::ErrorIo, locale::errors::I18nSpaceError};
+use crate::{Next, error::io::ErrorIo, locale::errors::I18nSpaceError};
pub const EC_SPACE_NOT_FOUND: i32 = 2600;
pub const EC_SPACE_PATH_FORMAT: i32 = 2601;
pub const EC_SPACE_REQUIRE_EMPTY_DIR: i32 = 2602;
pub const EC_SPACE_CONFIG_ALREADY_EXIST: i32 = 2603;
-#[derive(Serialize, Groupped)]
-pub struct ErrorSpace {
- pub error: SpaceError,
-}
+group!(ErrorSpace = SpaceError);
#[chain]
pub fn handle_error_space(err: ErrorSpace) -> Next {
- match err.error {
+ match err {
// Forward to ErrorIo
SpaceError::Io(error) => ErrorIo::from(error).to_render(),
@@ -30,7 +26,7 @@ pub fn handle_error_space(err: ErrorSpace) -> Next {
#[renderer]
pub fn render_error_space(err: ErrorSpace, ec: &mut ResExitCode) {
- match &err.error {
+ match &err {
SpaceError::SpaceNotFound => {
r_println!("{}", I18nSpaceError::space_not_found().trim());
ec.exit_code = EC_SPACE_NOT_FOUND;
@@ -56,9 +52,3 @@ pub fn render_error_space(err: ErrorSpace, ec: &mut ResExitCode) {
}
}
}
-
-impl From<SpaceError> for ErrorSpace {
- fn from(error: SpaceError) -> Self {
- Self { error }
- }
-}
diff --git a/rola-cli/src/lib.rs b/rola-cli/src/lib.rs
index b472169..02c479a 100644
--- a/rola-cli/src/lib.rs
+++ b/rola-cli/src/lib.rs
@@ -5,16 +5,12 @@ use mingling::{
res::ResExitCode,
};
+pub mod bucket_mgr;
+pub mod error;
pub mod output;
pub mod res;
pub mod tokio_wrapper;
-mod bucket_mgr;
-use bucket_mgr::*;
-
-mod error;
-use error::*;
-
use crate::output::display::markdown;
pub const EC_COMMAND_NOT_FOUND: i32 = 1000;
diff --git a/rola-cli/src/output.rs b/rola-cli/src/output.rs
index 65cafed..3e93bd7 100644
--- a/rola-cli/src/output.rs
+++ b/rola-cli/src/output.rs
@@ -2,5 +2,4 @@ pub mod ansi_control;
pub mod display;
pub mod env_logger;
-mod setup;
-pub use setup::*;
+pub mod setup;
diff --git a/rola-cli/src/output/setup.rs b/rola-cli/src/output/setup.rs
index 880b236..8e04eb9 100644
--- a/rola-cli/src/output/setup.rs
+++ b/rola-cli/src/output/setup.rs
@@ -39,15 +39,20 @@ pub fn env_logger_setup(program: &mut Program<ThisProgram>) {
// Add Hook
program.with_hook(
ProgramHook::<ThisProgram>::empty()
- .on_begin(|| info!("[INFO] Program is begin"))
- .on_pre_dispatch(|args| info!("[INFO] Pre dispatch: {args:?}"))
- .on_post_dispatch(|c: &_| info!("[INFO] Post dispatch: {c:?}"))
- .on_pre_chain(|c: &_, _| {
- info!("[INFO] Pre chain: {c}");
+ .on_begin::<_, ()>(|_| println!("[DEBUG] Program is begin"))
+ .on_pre_dispatch(|info| {
+ println!("[DEBUG] Pre dispatch: {}", info.arguments.join(" "))
})
- .on_post_chain(|any_output| info!("[INFO] Post chain: {}", any_output.member_id))
- .on_pre_render(|c: &_, _| info!("[INFO] Pre render: {c}"))
- .on_post_render(|_| info!("[INFO] Post render")),
+ .on_post_dispatch(|info| println!("[DEBUG] Post dispatch: {}", info.entry))
+ .on_pre_chain(|info| {
+ println!("[DEBUG] Pre chain: {}", info.input);
+ })
+ .on_post_chain(|info| println!("[DEBUG] Post chain: {}", info.output.member_id))
+ .on_finish(|_| {
+ println!("[DEBUG] Loop end");
+ })
+ .on_pre_render(|info| println!("[DEBUG] Pre render: {}", info.input))
+ .on_post_render(|_| println!("[DEBUG] Post render")),
);
}