auto renew log after 30days

This commit is contained in:
Piyush मिश्रः 2022-01-24 12:49:34 +05:30
parent 4e558d8c6b
commit b316b1dd29
1 changed files with 32 additions and 3 deletions

View File

@ -5,7 +5,12 @@ use fltk::dialog;
use fltk_theme::ThemeType; use fltk_theme::ThemeType;
use lazy_static::lazy_static; use lazy_static::lazy_static;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use std::{collections::HashMap, fs::File, path::PathBuf}; use std::{
collections::HashMap,
fs::File,
path::PathBuf,
time::{Duration, SystemTime},
};
lazy_static! { lazy_static! {
static ref CONFIG_DIR: PathBuf = { static ref CONFIG_DIR: PathBuf = {
@ -187,14 +192,38 @@ pub(crate) fn config() -> Args {
args args
} }
pub(crate) fn is_file_30_days_old(file: &File) -> bool {
if let Ok(meta) = file.metadata() {
if let Ok(time) = meta.created() {
if let Ok(dur) = SystemTime::now().duration_since(time) {
if dur > Duration::from_secs(60 * 60 * 24 * 30) {
return true;
}
}
}
}
false
}
pub(crate) fn log_file() -> File { pub(crate) fn log_file() -> File {
match File::open(&*LOG_PATH) { match File::open(&*LOG_PATH) {
Ok(f) => f, Ok(mut file) => {
if is_file_30_days_old(&file) {
match File::create(&*LOG_PATH) {
Ok(f) => file = f,
Err(e) => {
dialog::alert_default("Can't open log file!");
panic!("{:?}", e);
}
}
}
file
}
Err(_) => match File::create(&*LOG_PATH) { Err(_) => match File::create(&*LOG_PATH) {
Ok(f) => f, Ok(f) => f,
Err(e) => { Err(e) => {
dialog::alert_default("Can't open log file!"); dialog::alert_default("Can't open log file!");
panic!("{:?}", e) panic!("{:?}", e);
} }
}, },
} }