Compare commits
2 Commits
6e86dcbf09
...
b51a3fb0f0
| Author | SHA1 | Date |
|---|---|---|
|
|
b51a3fb0f0 | |
|
|
a75160c3e2 |
|
|
@ -4,6 +4,8 @@ version = "0.1.6"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
anyhow = "1.0.94"
|
||||||
clap = { version = "4.5.22", features = ["derive"] }
|
clap = { version = "4.5.22", features = ["derive"] }
|
||||||
serde = { version = "1.0.215", features = ["derive"] }
|
serde = { version = "1.0.215", features = ["derive"] }
|
||||||
serde_json = "1.0.133"
|
serde_json = "1.0.133"
|
||||||
|
tokio = { version = "1.42.0", features = ["full", "net"] }
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ pub struct Cli {
|
||||||
help = "to manage Noxis work",
|
help = "to manage Noxis work",
|
||||||
)]
|
)]
|
||||||
command : Commands,
|
command : Commands,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Subcommand)]
|
#[derive(Debug, Subcommand)]
|
||||||
pub enum Commands {
|
pub enum Commands {
|
||||||
#[command(
|
#[command(
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,16 @@
|
||||||
mod cli;
|
mod cli;
|
||||||
|
mod net;
|
||||||
|
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use cli::Cli;
|
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();
|
let cli = Cli::parse();
|
||||||
dbg!(&cli);
|
dbg!(&cli);
|
||||||
println!("{:?}", cli);
|
// println!("{:?}", cli);
|
||||||
|
try_send(create_tcp_stream().await, cli).await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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(())
|
||||||
|
}
|
||||||
|
|
@ -13,8 +13,6 @@ use std::sync::Arc;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use utils::*;
|
use utils::*;
|
||||||
|
|
||||||
#[allow(unused_imports)]
|
|
||||||
use options::preboot::PrebootParams;
|
use options::preboot::PrebootParams;
|
||||||
|
|
||||||
#[tokio::main(flavor = "multi_thread")]
|
#[tokio::main(flavor = "multi_thread")]
|
||||||
|
|
|
||||||
|
|
@ -47,15 +47,14 @@ async fn process_connection(mut stream: TcpStream) {
|
||||||
let buf_reader = BufReader::new(stream.borrow_mut());
|
let buf_reader = BufReader::new(stream.borrow_mut());
|
||||||
let mut rqst = buf_reader.lines();
|
let mut rqst = buf_reader.lines();
|
||||||
|
|
||||||
|
|
||||||
while let Ok(Some(line)) = rqst.next_line().await {
|
while let Ok(Some(line)) = rqst.next_line().await {
|
||||||
if line.is_empty() {
|
if line.is_empty() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
println!("{}", line);
|
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!";
|
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();
|
stream.write_all(response.as_bytes()).await.unwrap();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
if params.no_sub || params.no_remote_config {
|
||||||
return Err(CustomError::Fatal);
|
return Err(CustomError::Fatal);
|
||||||
}
|
}
|
||||||
if let Ok(client) = Client::open(format!("redis://{}/", &actual_prcs.config_server)) {
|
if let Ok(client) = Client::open(format!("redis://{}/", ¶ms.remote_server_url)) {
|
||||||
if let Ok(mut conn) = client.get_connection() {
|
if let Ok(mut conn) = client.get_connection() {
|
||||||
match crate::utils::get_container_id() {
|
match crate::utils::get_container_id() {
|
||||||
Some(channel_name) => {
|
Some(channel_name) => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue