diff --git a/src/modes/server.rs b/src/modes/server.rs index 01780c0..516323b 100644 --- a/src/modes/server.rs +++ b/src/modes/server.rs @@ -29,6 +29,7 @@ use crate::modes::status::{PathInfo, CompressionInfo, MetaPluginInfo, StatusInfo use crate::compression_engine::{CompressionType as CompressionTypeEnum, COMPRESSION_PROGRAMS}; use crate::compression_engine::program::CompressionEngineProgram; use crate::meta_plugin::{MetaPluginType, get_meta_plugin}; +use strum::IntoEnumIterator; #[derive(Debug, Clone)] pub struct ServerConfig { @@ -197,7 +198,10 @@ async fn handle_status( // Create dummy command and args for compatibility with status mode functions let mut cmd = Command::new("keep"); - let args = Args::default(); // This will need to be properly initialized + let args = crate::Args { + mode: crate::Mode::Status { output_format: None }, + options: Default::default(), + }; // Determine which meta plugins would be enabled for a save operation let mut meta_plugin_types: Vec = vec![]; // Empty for now, could be extended diff --git a/src/modes/status.rs b/src/modes/status.rs index 6c105b5..8d5ab51 100644 --- a/src/modes/status.rs +++ b/src/modes/status.rs @@ -281,10 +281,36 @@ fn show_status_structured( } #[derive(Serialize, Deserialize)] -struct StatusInfo { - paths: PathInfo, - compression: Vec, - meta_plugins: Vec, +pub struct StatusInfo { + pub paths: PathInfo, + pub compression: Vec, + pub meta_plugins: Vec, +} + +#[derive(Serialize, Deserialize)] +pub struct PathInfo { + pub data: String, + pub database: String, +} + +#[derive(Serialize, Deserialize)] +pub struct CompressionInfo { + #[serde(rename = "type")] + pub compression_type: String, + pub found: bool, + pub default: bool, + pub binary: String, + pub compress: String, + pub decompress: String, +} + +#[derive(Serialize, Deserialize)] +pub struct MetaPluginInfo { + pub meta_name: String, + pub found: bool, + pub enabled: bool, + pub binary: String, + pub args: String, }