refactor
parent
e2d2100ce9
commit
cb0726120c
|
|
@ -1,2 +1,3 @@
|
||||||
/target
|
/target
|
||||||
.idea
|
.idea
|
||||||
|
Dockerfile
|
||||||
|
|
@ -0,0 +1,8 @@
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [INFO] - Runner is configurating...
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [INFO] - Local config is actual
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [INFO] - Current runner configuration: 1721381809090
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [INFO] - Runner is ready. Initializing...
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [INFO] - Process 'web-server' on stage: /home/vladislav/web/web-server. Depends on 2 file(s), 1 service(s)
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [INFO] - Process 'temp-process' on stage: /home/vladislav/web/temp-process. Depends on 1 file(s), 2 service(s)
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [WARN] - Process web-server is running now!
|
||||||
|
Container-||NODE|| 04-09-2024 16:56:03 [WARN] - Process temp-process is running now!
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
use std::fs::OpenOptions;
|
||||||
|
use std::process::Command;
|
||||||
|
use chrono::Local;
|
||||||
|
use env_logger::Builder;
|
||||||
|
use std::io::Write;
|
||||||
|
use log::LevelFilter;
|
||||||
|
use tokio::fs::File;
|
||||||
|
use tokio::io::BufWriter;
|
||||||
|
use crate::utils::get_container_id;
|
||||||
|
|
||||||
|
// struct CustomLogger<W: Write> {
|
||||||
|
// stdout: W,
|
||||||
|
// file_writer: BufWriter<File>,
|
||||||
|
// }
|
||||||
|
|
||||||
|
pub fn setup_logger() -> Result<(), crate::structs::CustomError> {
|
||||||
|
// if Command::new("sh").args(["-c", "mkdir logs"]).output().is_err() {
|
||||||
|
// println!("Error: Cannot init logs directory");
|
||||||
|
// std::process::exit(1);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// let log_target = Box::new(OpenOptions::new().create(true).append(true).open("./logs/runner.log").unwrap_or_else(|_| {
|
||||||
|
// println!("Error: Cannot create local log-file in /logs/runner.log, returning...");
|
||||||
|
// std::process::exit(1);
|
||||||
|
// }));
|
||||||
|
|
||||||
|
|
||||||
|
// building logger with current output format
|
||||||
|
Builder::new()
|
||||||
|
.format(move |buf, record|{
|
||||||
|
writeln!(buf,
|
||||||
|
"Container-{}| {} [{}] - {}",
|
||||||
|
get_container_id().unwrap_or("||NODE|".to_string()),
|
||||||
|
Local::now().format("%d-%m-%Y %H:%M:%S"),
|
||||||
|
record.level(),
|
||||||
|
record.args(),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.filter(None, LevelFilter::Info)
|
||||||
|
.target(env_logger::Target::Stdout)
|
||||||
|
// .target(env_logger::Target::Pipe(log_target))
|
||||||
|
.init();
|
||||||
|
|
||||||
|
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
36
src/main.rs
36
src/main.rs
|
|
@ -4,48 +4,20 @@ mod files;
|
||||||
mod prcs;
|
mod prcs;
|
||||||
mod utils;
|
mod utils;
|
||||||
mod services;
|
mod services;
|
||||||
|
mod logger;
|
||||||
|
|
||||||
// use tokio::fs::File;
|
|
||||||
use std::fs::{File, OpenOptions};
|
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use std::io::Write;
|
use log::error;
|
||||||
use std::process::Command;
|
|
||||||
use chrono::Local;
|
|
||||||
use env_logger::Builder;
|
|
||||||
use log::{error, LevelFilter};
|
|
||||||
use structs::*;
|
use structs::*;
|
||||||
use config::*;
|
use config::*;
|
||||||
use utils::*;
|
use utils::*;
|
||||||
|
use logger::setup_logger;
|
||||||
|
|
||||||
|
|
||||||
#[tokio::main(flavor = "multi_thread")]
|
#[tokio::main(flavor = "multi_thread")]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
|
let _ = setup_logger();
|
||||||
if Command::new("sh").args(["-c", "'mkdir /var/log/runner-rs/'"]).output().is_err() {
|
|
||||||
println!("Error: Run runner in sudo mode");
|
|
||||||
}
|
|
||||||
|
|
||||||
let log_target = Box::new(OpenOptions::new().create_new(true).append(true).open("/var/log/runner-rs/runner.log").unwrap_or_else(|_| {
|
|
||||||
println!("Error: Cannot create local log-file in /var/log/runner-rs, returning...");
|
|
||||||
std::process::exit(1);
|
|
||||||
}));
|
|
||||||
|
|
||||||
// building logger with current output format
|
|
||||||
Builder::new()
|
|
||||||
.format(move |buf, record|{
|
|
||||||
writeln!(buf,
|
|
||||||
"Container-{}| {} [{}] - {}",
|
|
||||||
get_container_id().unwrap_or("||undefined container id|".to_string()),
|
|
||||||
Local::now().format("%d-%m-%Y %H:%M:%S"),
|
|
||||||
record.level(),
|
|
||||||
record.args(),
|
|
||||||
)
|
|
||||||
})
|
|
||||||
.target(env_logger::Target::Stdout)
|
|
||||||
.target(env_logger::Target::Pipe(log_target))
|
|
||||||
.filter(None, LevelFilter::Info)
|
|
||||||
.init();
|
|
||||||
|
|
||||||
log::info!("Runner is configurating...");
|
log::info!("Runner is configurating...");
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
|
use std::fs::OpenOptions;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use crate::structs::TrackingProcess;
|
use crate::structs::TrackingProcess;
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use inotify::Inotify;
|
use inotify::Inotify;
|
||||||
use std::process::Command;
|
use std::process::Command;
|
||||||
|
use chrono::Local;
|
||||||
|
use env_logger::Builder;
|
||||||
use crate::files::create_watcher;
|
use crate::files::create_watcher;
|
||||||
use log::{error, warn};
|
use log::{error, warn, LevelFilter};
|
||||||
use crate::prcs::{
|
use crate::prcs::{
|
||||||
is_active,
|
is_active,
|
||||||
is_frozen,
|
is_frozen,
|
||||||
|
|
@ -16,6 +19,7 @@ use crate::prcs::{
|
||||||
};
|
};
|
||||||
use tokio::time::Duration;
|
use tokio::time::Duration;
|
||||||
use tokio::join;
|
use tokio::join;
|
||||||
|
use std::io::Write;
|
||||||
use crate::files::file_handler;
|
use crate::files::file_handler;
|
||||||
use crate::services::service_handler;
|
use crate::services::service_handler;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue