pub mod util;
pub mod pkg;
pub mod Ex {
pub use walkdir;
pub use chrono;
}
pub mod Log {
pub use log::{*};
pub fn init_logger() -> Result<(), fern::InitError> {
fern::Dispatch::new()
.format(|out, message, record| {
out.finish(format_args!(
"{}[{}][{}] {}",
chrono::Local::now().format("[%Y-%m-%d][%H:%M:%S]"),
record.target(),
record.level(),
message
))
})
.level(log::LevelFilter::Debug)
.chain(std::io::stdout())
.apply()?;
Ok(())
}
}
pub use clap;
pub use clap::{ArgMatches};
pub mod queue;
mod tests {
use crate::util::filesys::zip_dir;
use std::path::Path;
use walkdir::{WalkDir, DirEntry};
#[test]
fn it_works() {
use walkdir;
let src_dir = "/Users/mac/data0/public_work/ucmd/proj/rcmd-core/test/ziptest";
let pf = Path::new(src_dir);
let zipfile = std::fs::File::create("test/test.zip").unwrap();
let mut ws = WalkDir::new(pf);
zip_dir(
&mut ws.into_iter()
.filter_entry(|e|ignore_entry(e))
.filter_map(|v|v.ok()), pf.to_str().unwrap(), zipfile);
}
fn ignore_entry(entry: &DirEntry) -> bool {
entry
.file_name()
.to_str()
.map(|s|!s.starts_with("."))
.unwrap_or(false)
}
}