From efb00dcf5e9dfb043af7e37f22b2bb45b82ed48e Mon Sep 17 00:00:00 2001 From: prplV Date: Tue, 21 Jan 2025 17:25:42 +0300 Subject: [PATCH] preproc setting up --- README.md | 4 +-- crates/preproc/Cargo.toml | 8 ++++++ crates/preproc/src/config.rs | 21 ++++++++++++++ crates/preproc/src/logger.rs | 50 +++++++++++++++++++++++++++++++++ crates/preproc/src/main.rs | 19 +++++++++++-- crates/preproc/src/transform.rs | 1 + 6 files changed, 99 insertions(+), 4 deletions(-) create mode 100644 crates/preproc/src/config.rs create mode 100644 crates/preproc/src/logger.rs create mode 100644 crates/preproc/src/transform.rs diff --git a/README.md b/README.md index c8897c7..4bfcad2 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,6 @@ | Crate (submodule) | Progress | |---|---| |`api-grub` | ✅✅✅✅✅✅✅🔲🔲🔲 | -|`config-delivery` | ✅✅✅✅🔲🔲🔲🔲🔲🔲 | +|`config-delivery` | ✅✅✅✅✅✅🔲🔲🔲🔲 | |`integrs-structs` | ✅✅✅✅✅✅🔲🔲🔲🔲 | -|`preproc` | 🔲🔲🔲🔲🔲🔲🔲🔲🔲🔲 | +|`preproc` | ✅✅✅🔲🔲🔲🔲🔲🔲🔲 | diff --git a/crates/preproc/Cargo.toml b/crates/preproc/Cargo.toml index 1b55bd2..9ef8c92 100644 --- a/crates/preproc/Cargo.toml +++ b/crates/preproc/Cargo.toml @@ -4,3 +4,11 @@ version = "0.1.0" edition = "2021" [dependencies] +anyhow = "1.0.95" +chrono = "0.4.39" +dotenv = "0.15.0" +env_logger = "0.11.6" +log = "0.4.25" +serde = { version = "1.0.217", features = ["derive"] } +serde_json = "1.0.137" +tokio = { version = "1.43.0", features = ["full"] } diff --git a/crates/preproc/src/config.rs b/crates/preproc/src/config.rs new file mode 100644 index 0000000..e22c5e0 --- /dev/null +++ b/crates/preproc/src/config.rs @@ -0,0 +1,21 @@ +// mod for prpeproc config pulling and updating + + + + + + + +#[cfg(test)] +mod config_unittests { + use tokio::test; + + #[test] + async fn create_unix_socket_server() { assert!(true) } + + #[test] + async fn verify_on_valid_config() { assert!(true) } + + #[test] + async fn verify_on_invalid_config() { assert!(true) } +} \ No newline at end of file diff --git a/crates/preproc/src/logger.rs b/crates/preproc/src/logger.rs new file mode 100644 index 0000000..6578b44 --- /dev/null +++ b/crates/preproc/src/logger.rs @@ -0,0 +1,50 @@ +use chrono::Local; +use env_logger::Builder; +use log::LevelFilter; +use std::io::Write; +use anyhow::Result; +use log::info; + +pub async fn setup_logger() -> Result<()> { + Builder::new() + .format(move |buf, record| { + writeln!( + buf, + "|{}| {} [{}] - {}", + "config-delivery", + Local::now().format("%d-%m-%Y %H:%M:%S"), + record.level(), + record.args(), + ) + }) + .filter(None, LevelFilter::Info) + .target(env_logger::Target::Stdout) + .init(); + + info!("Logger configured"); + Ok(()) +} + + +#[cfg(test)] +mod logger_unittests { + use tokio::test; + use super::*; + #[test] + async fn check_logger_builder() { + Builder::new() + .format(move |buf, record| { + writeln!( + buf, + "|{}| {} [{}] - {}", + "config-delivery", + Local::now().format("%d-%m-%Y %H:%M:%S"), + record.level(), + record.args(), + ) + }) + .filter(None, LevelFilter::Info) + .target(env_logger::Target::Stdout) + .init(); + } +} \ No newline at end of file diff --git a/crates/preproc/src/main.rs b/crates/preproc/src/main.rs index e7a11a9..3d9c8e1 100644 --- a/crates/preproc/src/main.rs +++ b/crates/preproc/src/main.rs @@ -1,3 +1,18 @@ -fn main() { - println!("Hello, world!"); +mod config; +mod transform; +mod logger; + +use logger::setup_logger; +use dotenv::dotenv; +use anyhow::Result; +use log::info; + +#[tokio::main(flavor = "multi_thread")] +async fn main() -> Result<()>{ + let _ = setup_logger().await?; + + info!("Pulling env vars from .env file if exists ..."); + dotenv().ok(); + + Ok(()) } diff --git a/crates/preproc/src/transform.rs b/crates/preproc/src/transform.rs new file mode 100644 index 0000000..43337c5 --- /dev/null +++ b/crates/preproc/src/transform.rs @@ -0,0 +1 @@ +// mod for preproccessing and transfering to the CM metrics data \ No newline at end of file