diff --git a/src/modes/common.rs b/src/modes/common.rs index d216f09..dc2e132 100644 --- a/src/modes/common.rs +++ b/src/modes/common.rs @@ -100,101 +100,6 @@ pub fn get_digest_type_meta(digest_type: MetaPluginType) -> String { } -pub fn cmd_args_digest_type(cmd: &mut Command, args: &Args) -> MetaPluginType { - let digest_name = args - .item - .digest - .clone() - .unwrap_or(MetaPluginType::DigestSha256.to_string()); - - let digest_type_opt = MetaPluginType::from_str(&digest_name); - if digest_type_opt.is_err() { - cmd.error( - ErrorKind::InvalidValue, - format!("Invalid digest algorithm '{}'. Use 'sha256' or 'md5'", digest_name), - ) - .exit(); - } - - digest_type_opt.unwrap() -} - -pub fn cmd_args_compression_type(cmd: &mut Command, args: &Args) -> CompressionType { - let compression_name = args - .item - .compression - .clone() - .unwrap_or(CompressionType::LZ4.to_string()); - - let compression_type_opt = CompressionType::from_str(&compression_name); - if compression_type_opt.is_err() { - cmd.error( - ErrorKind::InvalidValue, - format!("Invalid compression algorithm '{}'. Supported algorithms: lz4, gzip, xz, zstd", compression_name), - ) - .exit(); - } - - compression_type_opt.unwrap() -} - -#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] -#[serde(rename_all = "lowercase")] -pub enum OutputFormat { - Table, - Json, - Yaml, -} - -impl FromStr for OutputFormat { - type Err = anyhow::Error; - fn from_str(s: &str) -> Result { - match s.to_lowercase().as_str() { - "table" => Ok(OutputFormat::Table), - "json" => Ok(OutputFormat::Json), - "yaml" => Ok(OutputFormat::Yaml), - _ => Err(anyhow::anyhow!("Invalid output format. Supported formats: table, json, yaml")), - } - } -} - - -pub fn cmd_args_meta_plugin_types(cmd: &mut Command, args: &Args) -> Vec { - let mut meta_plugin_types = Vec::new(); - - // Handle comma-separated values in each meta_plugins argument - for meta_plugin_names_str in &args.item.meta_plugins { - let meta_plugin_names: Vec<&str> = meta_plugin_names_str.split(',').collect(); - - for name in meta_plugin_names { - let trimmed_name = name.trim(); - if trimmed_name.is_empty() { - continue; - } - - // Try to find the MetaPluginType by meta name - let mut found = false; - for meta_plugin_type in MetaPluginType::iter() { - let mut meta_plugin = crate::meta_plugin::get_meta_plugin(meta_plugin_type.clone()); - if meta_plugin.meta_name() == trimmed_name { - meta_plugin_types.push(meta_plugin_type); - found = true; - break; - } - } - - if !found { - cmd.error( - ErrorKind::InvalidValue, - format!("Unknown meta plugin type: {}", trimmed_name), - ) - .exit(); - } - } - } - - meta_plugin_types -} pub fn settings_meta_plugin_types(cmd: &mut Command, settings: &config::Settings) -> Vec { let mut meta_plugin_types = Vec::new();