From 820c1b06f9d6f60af5c853e5a42d14b1bd63ddec Mon Sep 17 00:00:00 2001 From: quexeky Date: Sun, 25 Jan 2026 22:32:23 +1100 Subject: [PATCH] feat: Use info! for progress logging Replaces existing progress_bar.println() --- cli/src/commands/connect/config_option.rs | 6 ++---- cli/src/commands/connect/s3.rs | 7 ++----- cli/src/commands/upload/interface.rs | 4 ++-- cli/src/commands/upload/mod.rs | 1 - cli/src/main.rs | 1 + cli/src/manifest.rs | 3 ++- .../{commands/upload/uploadable.rs => operator_builder.rs} | 3 --- 7 files changed, 9 insertions(+), 16 deletions(-) rename cli/src/{commands/upload/uploadable.rs => operator_builder.rs} (69%) diff --git a/cli/src/commands/connect/config_option.rs b/cli/src/commands/connect/config_option.rs index fd90453e..88ee6705 100644 --- a/cli/src/commands/connect/config_option.rs +++ b/cli/src/commands/connect/config_option.rs @@ -2,10 +2,7 @@ use clap::Subcommand; use opendal::{Operator, layers::LoggingLayer}; use serde::{Deserialize, Serialize}; -use crate::commands::{ - connect::s3::{S3Config, S3ConfigCli}, - upload::uploadable::OperatorBuilder, -}; +use crate::{commands::connect::s3::{S3Config, S3ConfigCli}, operator_builder::OperatorBuilder}; #[derive(Subcommand, Clone)] pub enum ConfigOptionCli { @@ -18,6 +15,7 @@ pub enum ConfigOption { impl ConfigOption { pub fn build(&self) -> anyhow::Result { + Ok(match self { ConfigOption::S3(s3_config) => s3_config.build()?, } diff --git a/cli/src/commands/connect/s3.rs b/cli/src/commands/connect/s3.rs index 1b95c9e3..e2f400ec 100644 --- a/cli/src/commands/connect/s3.rs +++ b/cli/src/commands/connect/s3.rs @@ -3,11 +3,8 @@ use opendal::Operator; use serde::{Deserialize, Serialize}; use crate::{ - commands::{ - connect::{config_option::ConfigOption, configurable::Configure}, - upload::uploadable::OperatorBuilder, - }, - interactive_variable, + commands::connect::{config_option::ConfigOption, configurable::Configure}, + interactive_variable, operator_builder::OperatorBuilder, }; #[derive(Args, Clone)] diff --git a/cli/src/commands/upload/interface.rs b/cli/src/commands/upload/interface.rs index 36e8fdf3..982b7ed7 100644 --- a/cli/src/commands/upload/interface.rs +++ b/cli/src/commands/upload/interface.rs @@ -4,9 +4,9 @@ use crate::{ cli::UploadInfo, commands::{ connect::config::Config, - upload::{chunk_reader::ChunkReader, uploadable::OperatorBuilder}, + upload::chunk_reader::ChunkReader, }, - manifest::generate_manifest, + manifest::generate_manifest, operator_builder::OperatorBuilder, }; use futures::AsyncWriteExt; use log::info; diff --git a/cli/src/commands/upload/mod.rs b/cli/src/commands/upload/mod.rs index 03bf694e..cdaa9e81 100644 --- a/cli/src/commands/upload/mod.rs +++ b/cli/src/commands/upload/mod.rs @@ -1,3 +1,2 @@ pub mod chunk_reader; pub mod interface; -pub mod uploadable; diff --git a/cli/src/main.rs b/cli/src/main.rs index e87e1969..627a1490 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -9,6 +9,7 @@ mod cli; mod commands; mod logging; mod manifest; +mod operator_builder; #[tokio::main] async fn main() -> anyhow::Result<()> { diff --git a/cli/src/manifest.rs b/cli/src/manifest.rs index e5e736f7..e6732233 100644 --- a/cli/src/manifest.rs +++ b/cli/src/manifest.rs @@ -2,6 +2,7 @@ use std::{collections::HashMap, path::Path}; use droplet_rs::manifest::{Manifest, generate_manifest_rusty}; use indicatif::{ProgressBar, ProgressStyle}; +use log::info; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] @@ -49,7 +50,7 @@ pub async fn generate_manifest(dir: &Path) -> anyhow::Result { let progress_int = (progress * 100f32).round() as u64; progress_bar.set_position(progress_int); }, - |log| progress_bar.println(log), + |log| progress_bar.suspend(|| info!("{}", log)), ) .await } diff --git a/cli/src/commands/upload/uploadable.rs b/cli/src/operator_builder.rs similarity index 69% rename from cli/src/commands/upload/uploadable.rs rename to cli/src/operator_builder.rs index c623c9eb..acc272e1 100644 --- a/cli/src/commands/upload/uploadable.rs +++ b/cli/src/operator_builder.rs @@ -1,8 +1,5 @@ - -use async_trait::async_trait; use opendal::Operator; -#[async_trait] pub trait OperatorBuilder { fn build(&self) -> anyhow::Result; }