get local config using cli

migrate
prplV 2025-05-22 09:30:35 +03:00
parent 92aa6f5b66
commit 5c94e366eb
1 changed files with 7 additions and 7 deletions

View File

@ -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<PrebootParams>) -> anyhow::Result<()> {
pub async fn init_cli_pipeline(params: Arc<PrebootParams>, config : Arc<Processes>) -> anyhow::Result<()> {
let socket_path = &params.self_socket;
let _ = fs::remove_file(socket_path);
@ -33,8 +34,7 @@ pub async fn init_cli_pipeline(params: Arc<PrebootParams>) -> 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<PrebootParams>) -> anyhow::Result<()>
///
/// *depends on* : `tokio::net::TcpStream`
///
async fn process_connection(mut stream: UnixStream, params: Arc<PrebootParams>) {
async fn process_connection(mut stream: UnixStream, params: Arc<PrebootParams>, config : Arc<Processes>) {
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<PrebootParams>)
match serde_json::from_slice::<Cli>(&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<PrebootParams>)
}
async fn process_cli_cmd(cli : Cli, params: Arc<PrebootParams>) -> anyhow::Result<String> {
async fn process_cli_cmd(cli : Cli, params: Arc<PrebootParams>, global_config : Arc<Processes>) -> anyhow::Result<String> {
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<PrebootParams>) -> 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())?)
}
},
/* */