diff --git a/src/modes/common.rs b/src/modes/common.rs index 58424e3..e058c34 100644 --- a/src/modes/common.rs +++ b/src/modes/common.rs @@ -1,4 +1,5 @@ use crate::Args; +use crate::config; use crate::compression_engine::CompressionType; use crate::meta_plugin::MetaPluginType; use clap::Command; @@ -195,7 +196,7 @@ pub fn cmd_args_meta_plugin_types(cmd: &mut Command, args: &Args) -> Vec Vec { +pub fn settings_meta_plugin_types(cmd: &mut Command, settings: &config::Settings) -> Vec { let mut meta_plugin_types = Vec::new(); // Handle comma-separated values in each meta_plugins argument @@ -232,7 +233,7 @@ pub fn settings_meta_plugin_types(cmd: &mut Command, settings: &crate::config::S meta_plugin_types } -pub fn settings_digest_type(cmd: &mut Command, settings: &crate::config::Settings) -> MetaPluginType { +pub fn settings_digest_type(cmd: &mut Command, settings: &config::Settings) -> MetaPluginType { let digest_name = settings .digest .clone() @@ -250,7 +251,7 @@ pub fn settings_digest_type(cmd: &mut Command, settings: &crate::config::Setting digest_type_opt.unwrap() } -pub fn settings_compression_type(cmd: &mut Command, settings: &crate::config::Settings) -> CompressionType { +pub fn settings_compression_type(cmd: &mut Command, settings: &config::Settings) -> CompressionType { let compression_name = settings .compression .clone() @@ -268,7 +269,7 @@ pub fn settings_compression_type(cmd: &mut Command, settings: &crate::config::Se compression_type_opt.unwrap() } -pub fn settings_output_format(settings: &crate::config::Settings) -> OutputFormat { +pub fn settings_output_format(settings: &config::Settings) -> OutputFormat { settings.output_format .as_ref() .and_then(|s| OutputFormat::from_str(s).ok()) diff --git a/src/modes/delete.rs b/src/modes/delete.rs index 47b9cce..c84bdf4 100644 --- a/src/modes/delete.rs +++ b/src/modes/delete.rs @@ -3,6 +3,7 @@ use std::fs; use std::path::PathBuf; use crate::db; +use crate::config; use clap::Command; use clap::error::ErrorKind; use log::{debug, warn}; @@ -10,8 +11,8 @@ use rusqlite::Connection; pub fn mode_delete( cmd: &mut Command, - _settings: &crate::config::Settings, - _config: &crate::config::Config, + _settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &mut Vec, conn: &mut Connection, diff --git a/src/modes/diff.rs b/src/modes/diff.rs index 08e6023..c1b78d2 100644 --- a/src/modes/diff.rs +++ b/src/modes/diff.rs @@ -3,6 +3,7 @@ use clap::Command; use std::io::Read; use std::os::fd::FromRawFd; use std::str::FromStr; +use crate::config; fn validate_diff_args(cmd: &mut Command, ids: &Vec, tags: &Vec) { if !tags.is_empty() { @@ -293,8 +294,8 @@ fn handle_diff_output( pub fn mode_diff( cmd: &mut Command, - _settings: &crate::config::Settings, - _config: &crate::config::Config, + _settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &mut Vec, conn: &mut rusqlite::Connection, diff --git a/src/modes/get.rs b/src/modes/get.rs index 9b70b89..40c1847 100644 --- a/src/modes/get.rs +++ b/src/modes/get.rs @@ -3,6 +3,7 @@ use std::io::{Read, Write}; use crate::compression_engine::{CompressionType, get_compression_engine}; use crate::common::is_binary::is_binary; +use crate::config; use clap::Command; use std::path::PathBuf; use std::str::FromStr; @@ -10,8 +11,8 @@ use is_terminal::IsTerminal; pub fn mode_get( cmd: &mut Command, - settings: &crate::config::Settings, - _config: &crate::config::Config, + settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &mut Vec, conn: &mut rusqlite::Connection, diff --git a/src/modes/info.rs b/src/modes/info.rs index 81dff53..fea8758 100644 --- a/src/modes/info.rs +++ b/src/modes/info.rs @@ -1,5 +1,6 @@ use crate::db::Item; -use crate::modes::common::{format_size, get_output_format, OutputFormat}; +use crate::modes::common::{format_size, OutputFormat}; +use crate::config; use anyhow::anyhow; use serde_json; use serde_yaml; @@ -19,8 +20,8 @@ use prettytable::{Attr, Cell, Row, Table}; pub fn mode_info( cmd: &mut Command, - settings: &crate::config::Settings, - _config: &crate::config::Config, + settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &mut Vec, conn: &mut rusqlite::Connection, @@ -68,7 +69,7 @@ struct ItemInfo { fn show_item( item: Item, // Using the provided struct definition - settings: &crate::config::Settings, + settings: &config::Settings, conn: &mut rusqlite::Connection, data_path: PathBuf, ) -> anyhow::Result<()> { @@ -163,7 +164,7 @@ fn show_item( fn show_item_structured( item: Item, - settings: &crate::config::Settings, + settings: &config::Settings, conn: &mut rusqlite::Connection, data_path: PathBuf, output_format: OutputFormat, diff --git a/src/modes/list.rs b/src/modes/list.rs index 8bf6965..356437d 100644 --- a/src/modes/list.rs +++ b/src/modes/list.rs @@ -1,6 +1,7 @@ use crate::db::{get_items, get_items_matching}; use crate::modes::common::ColumnType; -use crate::modes::common::{size_column, string_column, get_output_format, OutputFormat}; +use crate::modes::common::{size_column, string_column, OutputFormat}; +use crate::config; use serde::{Deserialize, Serialize}; use serde_json; use serde_yaml; @@ -27,8 +28,8 @@ struct ListItem { pub fn mode_list( cmd: &mut clap::Command, - settings: &crate::config::Settings, - _config: &crate::config::Config, + settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &Vec, conn: &mut rusqlite::Connection, @@ -196,7 +197,7 @@ fn show_list_structured( tags_by_item: std::collections::HashMap>, meta_by_item: std::collections::HashMap>, data_path: std::path::PathBuf, - settings: &crate::config::Settings, + settings: &config::Settings, output_format: OutputFormat, ) -> anyhow::Result<()> { let mut list_items = Vec::new(); diff --git a/src/modes/save.rs b/src/modes/save.rs index 2d78f7a..ff5ba2c 100644 --- a/src/modes/save.rs +++ b/src/modes/save.rs @@ -5,6 +5,7 @@ use std::io::{Read, Write, IsTerminal}; // Import the missing functions from common module use crate::modes::common::{settings_digest_type, settings_compression_type, settings_meta_plugin_types}; +use crate::config; fn validate_save_args(cmd: &mut Command, ids: &Vec) { if !ids.is_empty() { @@ -24,7 +25,7 @@ fn initialize_tags(tags: &mut Vec) { fn setup_compression_and_plugins( cmd: &mut Command, - settings: &crate::config::Settings, + settings: &config::Settings, ) -> (crate::compression_engine::CompressionType, Box, Vec>) { let digest_type = settings_digest_type(cmd, settings); debug!("MAIN: Digest type: {:?}", digest_type); @@ -78,7 +79,7 @@ fn setup_compression_and_plugins( fn create_and_log_item( conn: &mut rusqlite::Connection, - settings: &crate::config::Settings, + settings: &config::Settings, tags: &Vec, compression_type: &crate::compression_engine::CompressionType, ) -> Result { @@ -121,7 +122,7 @@ fn create_and_log_item( fn setup_item_metadata( conn: &mut rusqlite::Connection, - _settings: &crate::config::Settings, + _settings: &config::Settings, item: &crate::db::Item, tags: &Vec, ) -> Result<(), anyhow::Error> { @@ -129,7 +130,7 @@ fn setup_item_metadata( Ok(()) } -fn collect_item_meta(settings: &crate::config::Settings) -> std::collections::HashMap { +fn collect_item_meta(settings: &config::Settings) -> std::collections::HashMap { let mut item_meta: std::collections::HashMap = crate::modes::common::get_meta_from_env(); if let Ok(hostname) = gethostname::gethostname().into_string() { @@ -230,8 +231,8 @@ fn finalize_meta_plugins( pub fn mode_save( cmd: &mut Command, - settings: &crate::config::Settings, - _config: &crate::config::Config, + settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &mut Vec, conn: &mut rusqlite::Connection, diff --git a/src/modes/server.rs b/src/modes/server.rs index 8c546df..0b21154 100644 --- a/src/modes/server.rs +++ b/src/modes/server.rs @@ -2,7 +2,7 @@ use anyhow::Result; use axum::{ Router, }; -use clap::Command; +use clap::{Command, Parser}; use log::{debug, info, warn}; use std::net::SocketAddr; use std::path::PathBuf; @@ -11,6 +11,7 @@ use tokio::sync::Mutex; use tower_http::cors::CorsLayer; use tower::ServiceBuilder; use tower_http::trace::TraceLayer; +use crate::config; pub mod common; mod api; @@ -20,8 +21,8 @@ pub use common::{ServerConfig, AppState, logging_middleware, create_auth_middlew pub fn mode_server( _cmd: &mut Command, - settings: &crate::config::Settings, - config: &crate::config::Config, + settings: &config::Settings, + config: &config::Config, conn: &mut rusqlite::Connection, data_path: PathBuf, ) -> Result<()> { diff --git a/src/modes/status.rs b/src/modes/status.rs index c48bbd6..4b626ac 100644 --- a/src/modes/status.rs +++ b/src/modes/status.rs @@ -2,7 +2,8 @@ use clap::*; use is_terminal::IsTerminal; use std::path::PathBuf; -use crate::modes::common::{get_format_box_chars_no_border_line_separator, get_output_format, OutputFormat}; +use crate::modes::common::{get_format_box_chars_no_border_line_separator, OutputFormat}; +use crate::config; use prettytable::color; use serde_json; use serde_yaml; @@ -119,8 +120,8 @@ fn build_meta_plugin_table(meta_plugin_info: &Vec) -> Table { pub fn mode_status( _cmd: &mut Command, - settings: &crate::config::Settings, - _config: &crate::config::Config, + settings: &config::Settings, + _config: &config::Config, data_path: PathBuf, db_path: PathBuf, ) -> Result<(), anyhow::Error> { diff --git a/src/modes/update.rs b/src/modes/update.rs index 5478156..4086a47 100644 --- a/src/modes/update.rs +++ b/src/modes/update.rs @@ -5,7 +5,8 @@ use std::str::FromStr; use crate::compression_engine::{CompressionType, get_compression_engine}; use crate::db; use crate::meta_plugin; -use crate::modes::common::{cmd_args_digest_type, get_digest_type_meta}; +use crate::modes::common::get_digest_type_meta; +use crate::config; use clap::Command; use clap::error::ErrorKind; use log::{debug, info}; @@ -13,8 +14,8 @@ use rusqlite::Connection; pub fn mode_update( cmd: &mut Command, - settings: &crate::config::Settings, - _config: &crate::config::Config, + settings: &config::Settings, + _config: &config::Config, ids: &mut Vec, tags: &mut Vec, conn: &mut Connection,