use std::{env, fs::File, io::Read, path::Path}; #[allow(dead_code)] fn create_colors() { let out_dir = env::var("OUT_DIR").unwrap(); let dest_path = Path::new(&out_dir).join("colors.rs"); let mut file = File::open("./data/colors.json").expect("Could not open colors.json"); let mut contents = String::new(); file.read_to_string(&mut contents) .expect("Could not read colors.json"); let data: serde_json::Value = serde_json::from_str(&contents).expect("Could not parse JSON"); std::fs::write( dest_path, format!("pub static COLORS: &str = r##\"{}\"##;", data), ) .unwrap(); } #[allow(dead_code)] fn create_crossterm_header() { let crate_dir = std::env::var("CARGO_MANIFEST_DIR").unwrap_or(".".to_string()); if let Ok(bindings) = cbindgen::generate(&crate_dir) { bindings.write_to_file(format!("{}/include/crossterm.h", crate_dir)); } } fn main() { #[cfg(not(feature = "docsrs"))] create_colors(); #[cfg(not(feature = "docsrs"))] create_crossterm_header(); }