flipper-zero-tutorial-app-rs/build.rs
2024-04-09 22:39:25 +02:00

25 lines
802 B
Rust

use std::{fs::File, io::Write, path::PathBuf, process::Command};
use byteorder::WriteBytesExt;
use glob::glob;
fn create_icon(image: PathBuf) {
let mut icon_path = image.clone();
icon_path.set_extension("icon");
let icon = Command::new("convert").arg(image).arg("mono:-").output().expect("Fail to convert image").stdout;
let mut icon_file = File::create(icon_path).expect("Fail to create icon file");
icon_file.write_u8(0).expect("Fail to write icon compress header");
icon_file.write_all(&icon).expect("Fail to write icon data");
}
fn main() {
println!("cargo::rerun-if-changed=src/icons");
for entry in glob("src/icons/**/*.png").unwrap() {
match entry {
Ok(path) => create_icon(path),
Err(e) => eprintln!("{e}"),
}
}
}