24 lines
802 B
Rust
24 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}"),
|
|
}
|
|
}
|
|
}
|