diff --git a/src/factories/container_list.rs b/src/factories/container_list.rs index 7cb9673..7dadbab 100644 --- a/src/factories/container_list.rs +++ b/src/factories/container_list.rs @@ -186,7 +186,7 @@ impl FactoryComponent for Container { } } - fn update_cmd(&mut self, message: Self::CommandOutput, sender: FactorySender) { + fn update_cmd(&mut self, message: Self::CommandOutput, _sender: FactorySender) { match message { CommandMessage::SetStarted => self.status = ContainerStatus::Running, CommandMessage::SetStopped => self.status = ContainerStatus::NotRunning, diff --git a/src/util/toolbox.rs b/src/util/toolbox.rs index 1f49500..827c8e1 100644 --- a/src/util/toolbox.rs +++ b/src/util/toolbox.rs @@ -4,7 +4,6 @@ use std::{fmt::Display, process::Command, str::FromStr}; #[derive(Debug, PartialEq)] pub enum ToolbxError { ParseStatusError(String), - JSONSerializationError(String), CommandExecutionError(String), CommandUnsuccessfulError(String), } @@ -18,9 +17,6 @@ impl Display for ToolbxError { ToolbxError::CommandExecutionError(command_exec_error) => { write!(f, "{}", command_exec_error) } - ToolbxError::JSONSerializationError(msg) => { - write!(f, "{}", msg) - } ToolbxError::CommandUnsuccessfulError(command_unsuc_error) => { write!(f, "{}", command_unsuc_error) } @@ -68,85 +64,12 @@ pub struct ToolbxContainer { pub image: String, } -pub type PodmanInspectArray = Vec; - -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct PodmanInspectInfo { - #[serde(rename = "Id")] - pub id: String, - #[serde(rename = "Created")] - pub created: String, - #[serde(rename = "State")] - pub state: PodManInspectState, - #[serde(rename = "Image")] - pub image: String, - #[serde(rename = "ImageName")] - pub image_name: String, - #[serde(rename = "Name")] - pub name: String, -} - -#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct PodManInspectState { - #[serde(rename = "Status")] - pub status: String, -} - -pub enum ToolboxCreateParameter { - None, - Distro(String), - Image(String), - Release(String), -} - impl ToolbxContainer { - pub fn new(name: String) -> ToolbxContainer { - ToolbxContainer { - name: name, - ..Default::default() - } - } - - pub fn create(name: String, parameter: ToolboxCreateParameter) { - todo!("Implement actual functionality to create toolbox via commandline") - } - pub fn get_toolboxes() -> Vec { let output = run_cmd_toolbx_list_containers(); println!("{}", output); parse_cmd_list_containers(output.as_str()) } - - fn parse_status(output: &str) -> Result { - let result: Result = serde_json::from_str(output); - match result { - Ok(inspect_vec) => match inspect_vec.first() { - Some(info) => Ok(info.clone()), - None => Err(ToolbxError::JSONSerializationError( - "Inspect command returned empty vector.".to_string(), - )), - }, - Err(e) => Err(ToolbxError::JSONSerializationError(e.to_string())), - } - } - - pub fn update_status(&mut self) -> Result<(), ToolbxError> { - let output = Command::new("flatpak-spawn") - .arg("--host") - .arg("podman") - .arg("container") - .arg("inspect") - .arg(self.name.clone()) - .output() - .expect("Failed to execute command"); - - let output = String::from_utf8_lossy(&output.stdout).to_string(); - let inspect_result = ToolbxContainer::parse_status(output.as_str())?; - self.status = ToolbxStatus::from_str(inspect_result.state.status.as_str())?; - Ok(()) - } } pub fn open_toolbox_container_in_terminal(hash: &str) -> Result<(), ToolbxError> {