extern crate glob; use std::env; use std::fs::File; use std::io::prelude::*; use std::io::BufReader; use std::path::Path; fn main() { let out_dir = env::var("OUT_DIR").unwrap(); let dest_path = Path::new(&out_dir).join("statistics.rs"); let mut f = File::create(&dest_path).unwrap(); for stats in glob::glob("data/*.dat").unwrap().filter_map(Result::ok) { let name = stats.file_name().unwrap(); let name = name.to_str().unwrap().replace(".dat", ""); if name == "requests" { continue; } f.write_all( format!( "const {}: &'static [(usize, usize)] = &[", name.to_uppercase().replace('-', "_") ).as_bytes(), ).unwrap(); let stats = File::open(&*stats).map(BufReader::new).unwrap(); for line in stats.lines().filter_map(Result::ok) { let mut fields = line.split_whitespace(); f.write_all( format!("({}, {}),", fields.next().unwrap(), fields.next().unwrap()).as_bytes(), ).unwrap(); } f.write_all(b"];\n").unwrap(); } }