use std::env; use std::io; use std::fs; use std::os::unix::fs::PermissionsExt; mod fswalk; use fswalk::DirTree; // Command line args are names of dirs, recursively list all files and // dirs them fn main() -> io::Result<()> { for dirname in env::args().skip(1) { let tree = DirTree::new(&dirname); for entry in tree { write_info(&entry.path(), &entry.metadata()); } } Ok(()) } fn write_info(path: &str, meta: &fs::Metadata) { println!("{} {}", format_metadata(&meta), path); } fn format_metadata(meta: &fs::Metadata) -> String { let mode = meta.permissions().mode(); format!("{:06o}", mode) }