diff options
| author | 魏曹先生 <1992414357@qq.com> | 2026-06-30 06:01:32 +0800 |
|---|---|---|
| committer | 魏曹先生 <1992414357@qq.com> | 2026-06-30 06:01:32 +0800 |
| commit | 8cbba8dc8900b98e23e6ee38d6f02537ba936c1c (patch) | |
| tree | c5f333d67871d25833b5ddc96f1d9aae9dcdd603 /rola-cli/src | |
| parent | 40183e431da97fe0377b2f2e2ea47b3a14376680 (diff) | |
use public modules
Diffstat (limited to 'rola-cli/src')
| -rw-r--r-- | rola-cli/src/bin/rola.rs | 7 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr.rs | 7 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/bind.rs | 7 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/bind/chains.rs | 34 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/bind/renderers.rs | 2 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/config.rs | 3 | ||||
| -rw-r--r-- | rola-cli/src/bucket_mgr/creation.rs | 8 | ||||
| -rw-r--r-- | rola-cli/src/error.rs | 10 | ||||
| -rw-r--r-- | rola-cli/src/error/space.rs | 20 | ||||
| -rw-r--r-- | rola-cli/src/lib.rs | 8 | ||||
| -rw-r--r-- | rola-cli/src/output.rs | 3 | ||||
| -rw-r--r-- | rola-cli/src/output/setup.rs | 21 |
12 files changed, 57 insertions, 73 deletions
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")), ); } |
