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