diff --git a/noxis-rs/src/options/cli_pipeline.rs b/noxis-rs/src/options/cli_pipeline.rs index 451b6bb..f1fbf7b 100644 --- a/noxis-rs/src/options/cli_pipeline.rs +++ b/noxis-rs/src/options/cli_pipeline.rs @@ -5,6 +5,7 @@ use std::fs; use std::sync::Arc; use tokio::io::{ AsyncWriteExt, AsyncReadExt}; use noxis_cli::Cli; +use super::structs::Processes; use super::preboot::PrebootParams; @@ -21,7 +22,7 @@ use super::preboot::PrebootParams; /// /// *depends on* : - /// -pub async fn init_cli_pipeline(params: Arc) -> anyhow::Result<()> { +pub async fn init_cli_pipeline(params: Arc, config : Arc) -> anyhow::Result<()> { let socket_path = ¶ms.self_socket; let _ = fs::remove_file(socket_path); @@ -33,8 +34,7 @@ pub async fn init_cli_pipeline(params: Arc) -> anyhow::Result<()> loop { match list.accept().await { Ok((socket, _)) => { - // tokio::spawn(); - process_connection(socket, params.clone()).await; + process_connection(socket, params.clone(), config.clone()).await; }, Err(er) => { error!("Cannot poll connection to CLI due to {}", er); @@ -64,7 +64,7 @@ pub async fn init_cli_pipeline(params: Arc) -> anyhow::Result<()> /// /// *depends on* : `tokio::net::TcpStream` /// -async fn process_connection(mut stream: UnixStream, params: Arc) { +async fn process_connection(mut stream: UnixStream, params: Arc, config : Arc) { let mut buf = vec![0; 1024]; match stream.read(&mut buf).await { Ok(0) => { @@ -76,7 +76,7 @@ async fn process_connection(mut stream: UnixStream, params: Arc) match serde_json::from_slice::(&buf) { Ok(cli) => { info!("Received CLI request: {:?}", cli); - match process_cli_cmd(cli, params.clone()).await { + match process_cli_cmd(cli, params.clone(), config).await { Ok(response) => { if let Err(e) = stream.write_all(response.as_bytes()).await { error!("Failed to send response: {}", e); @@ -98,7 +98,7 @@ async fn process_connection(mut stream: UnixStream, params: Arc) } -async fn process_cli_cmd(cli : Cli, params: Arc) -> anyhow::Result { +async fn process_cli_cmd(cli : Cli, params: Arc, global_config : Arc) -> anyhow::Result { use noxis_cli::{Commands, ConfigAction}; return match cli.command { Commands::Config(config) => { @@ -108,7 +108,7 @@ async fn process_cli_cmd(cli : Cli, params: Arc) -> anyhow::Resul Ok(serde_json::to_string_pretty(params.as_ref())?) } else { /* */ - Ok(String::from("Ok")) + Ok(serde_json::to_string_pretty(global_config.as_ref())?) } }, /* */