Compare commits

..

2 Commits

Author SHA1 Message Date
prplV b51a3fb0f0 submodules adj 2024-12-12 17:04:20 +03:00
prplV a75160c3e2 cli communication added 2024-12-12 17:03:57 +03:00
7 changed files with 40 additions and 9 deletions

View File

@ -4,6 +4,8 @@ version = "0.1.6"
edition = "2021"
[dependencies]
anyhow = "1.0.94"
clap = { version = "4.5.22", features = ["derive"] }
serde = { version = "1.0.215", features = ["derive"] }
serde_json = "1.0.133"
tokio = { version = "1.42.0", features = ["full", "net"] }

View File

@ -7,7 +7,8 @@ pub struct Cli {
help = "to manage Noxis work",
)]
command : Commands,
}
}
#[derive(Debug, Subcommand)]
pub enum Commands {
#[command(

View File

@ -1,11 +1,16 @@
mod cli;
mod net;
use clap::Parser;
use cli::Cli;
use net::{create_tcp_stream, try_send};
use anyhow::Result;
fn main() -> Result<(), std::io::Error>{
#[tokio::main]
async fn main() -> Result<()>{
let cli = Cli::parse();
dbg!(&cli);
println!("{:?}", cli);
// println!("{:?}", cli);
try_send(create_tcp_stream().await, cli).await?;
Ok(())
}

26
noxis-cli/src/net.rs Normal file
View File

@ -0,0 +1,26 @@
use tokio::net::TcpStream;
use tokio::io::AsyncWriteExt;
use tokio::time::{Duration, sleep};
use anyhow::Result;
use super::Cli;
pub async fn create_tcp_stream() -> Result<TcpStream> {
let stream = TcpStream::connect("127.0.0.1:7753").await?;
Ok(stream)
}
pub async fn try_send(stream: Result<TcpStream>, params: Cli) -> Result<()> {
let mut stream = stream?;
loop {
if stream.writable().await.is_err() {
sleep(Duration::from_millis(100)).await;
continue;
}
let msg = format!("{:?}", params);
// let msg = r"HTTP/1.1 POST\r\nContent-Length: 14\r\nContent-Type: text/plain\r\n\r\nHello, World!@";
stream.write_all(msg.as_bytes()).await?;
// ...
}
Ok(())
}

View File

@ -13,8 +13,6 @@ use std::sync::Arc;
use std::time::Duration;
use tokio::sync::mpsc;
use utils::*;
#[allow(unused_imports)]
use options::preboot::PrebootParams;
#[tokio::main(flavor = "multi_thread")]

View File

@ -47,15 +47,14 @@ async fn process_connection(mut stream: TcpStream) {
let buf_reader = BufReader::new(stream.borrow_mut());
let mut rqst = buf_reader.lines();
while let Ok(Some(line)) = rqst.next_line().await {
if line.is_empty() {
break;
}
println!("{}", line);
}
// .map(|result| result.unwrap())
// .take_while(|line| !line.is_empty())
// .collect();
let response = "HTTP/1.1 200 OK\r\nContent-Length: 13\r\nContent-Type: text/plain\r\n\r\nHello, World!";
stream.write_all(response.as_bytes()).await.unwrap();
}

View File

@ -322,7 +322,7 @@ pub async fn subscribe_config_stream(actual_prcs: Arc<Processes>, params: Arc<Pr
if params.no_sub || params.no_remote_config {
return Err(CustomError::Fatal);
}
if let Ok(client) = Client::open(format!("redis://{}/", &actual_prcs.config_server)) {
if let Ok(client) = Client::open(format!("redis://{}/", &params.remote_server_url)) {
if let Ok(mut conn) = client.get_connection() {
match crate::utils::get_container_id() {
Some(channel_name) => {