use std::fs;
use std::path::Path;
use anyhow::Result;
pub(crate) fn copy_dir_all(src: &Path, dst: &Path) -> Result<()> {
fs::create_dir_all(dst)?;
for entry in fs::read_dir(src)? {
let entry = entry?;
let ty = entry.file_type()?;
let dest = dst.join(entry.file_name());
if ty.is_dir() {
copy_dir_all(&entry.path(), &dest)?;
} else {
fs::copy(entry.path(), &dest)?;
}
}
Ok(())
}