use std::path::{Path, PathBuf};
const ASSETS: &[(&str, &str)] = &[
("../../data/talon.txt", "talon.txt"),
("../../skill/SKILL.md", "SKILL.md"),
];
fn sync(src: &Path, dst: &Path) {
let Ok(src_bytes) = std::fs::read(src) else {
return;
};
let needs_write = std::fs::read(dst).map_or(true, |existing| existing != src_bytes);
if needs_write {
if let Some(parent) = dst.parent() {
let _ = std::fs::create_dir_all(parent);
}
let _ = std::fs::write(dst, src_bytes);
}
}
fn main() {
let manifest_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
let embedded = manifest_dir.join("embedded");
for (src_rel, dst_name) in ASSETS {
let src = manifest_dir.join(src_rel);
let dst = embedded.join(dst_name);
if src.exists() {
sync(&src, &dst);
println!("cargo:rerun-if-changed={}", src.display());
}
}
}