2020-07-11 11:29:34 -04:00
|
|
|
use minify_html::{Cfg, in_place};
|
2020-01-09 06:40:04 -05:00
|
|
|
use std::fs;
|
|
|
|
use std::io::{stdout};
|
|
|
|
use std::time::Instant;
|
|
|
|
use structopt::StructOpt;
|
|
|
|
|
|
|
|
#[derive(StructOpt)]
|
|
|
|
struct Args {
|
|
|
|
#[structopt(long, parse(from_os_str))]
|
|
|
|
tests: std::path::PathBuf,
|
|
|
|
#[structopt(long)]
|
|
|
|
iterations: usize,
|
|
|
|
}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
let args = Args::from_args();
|
|
|
|
let tests = fs::read_dir(args.tests).unwrap().map(|d| d.unwrap());
|
|
|
|
|
|
|
|
let mut results: Vec<(String, f64)> = Vec::new();
|
|
|
|
|
|
|
|
for t in tests {
|
|
|
|
let source = fs::read(t.path()).unwrap();
|
|
|
|
let start = Instant::now();
|
|
|
|
for _ in 0..args.iterations {
|
|
|
|
let mut data = source.to_vec();
|
2020-07-11 11:29:34 -04:00
|
|
|
in_place(&mut data, &Cfg {
|
2020-07-10 11:33:38 -04:00
|
|
|
minify_js: false,
|
|
|
|
}).unwrap();
|
2020-01-09 06:40:04 -05:00
|
|
|
};
|
|
|
|
let elapsed = start.elapsed().as_secs_f64();
|
|
|
|
let ops = args.iterations as f64 / elapsed;
|
|
|
|
results.push((t.file_name().to_str().unwrap().to_string(), ops));
|
|
|
|
};
|
|
|
|
|
|
|
|
serde_json::to_writer(stdout(), &results).unwrap();
|
|
|
|
}
|