fn do_op<F>(path: &Path, desc: &str, f: F)
where F: FnMut(&Path) -> Result<()>,