From 22fded7eb2bc84aceda4d67749d48554b80be2f1 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 1 Oct 2018 18:11:20 +0300 Subject: Change: add rfc822-style output (not all fields yet) --- src/main.rs | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 61 insertions(+), 2 deletions(-) diff --git a/src/main.rs b/src/main.rs index c31dd20..cdaa8e0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -2,6 +2,7 @@ use std::env; use std::io; use std::fs; use std::os::unix::fs::PermissionsExt; +use std::os::linux::fs::MetadataExt; mod fswalk; use fswalk::DirTree; @@ -20,11 +21,69 @@ fn main() -> io::Result<()> { fn write_info(path: &str, meta: &fs::Metadata) { - println!("{} {}", format_metadata(&meta), path); + println!("Name: {}", path); + println!("Mtime: {}", format_mtime(meta)); + println!("Mode: {}", format_mode(meta)); + println!("Ino: {}", format_inode(meta)); + println!("Dev: {}", format_dev(meta)); + println!("Nlink: {}", format_nlink(meta)); + println!("Size: {}", format_size(meta)); + println!("Uid: {}", format_uid(meta)); + println!("Username: {}", format_username(meta)); + println!("Gid: {}", format_gid(meta)); + println!("Group: {}", format_group(meta)); + println!("SHA256: xxx"); + println!(""); } -fn format_metadata(meta: &fs::Metadata) -> String { +fn format_mtime(meta: &fs::Metadata) -> String { + let mtime = meta.modified().unwrap(); + format!("{:?}", mtime) +} + + +fn format_mode(meta: &fs::Metadata) -> String { let mode = meta.permissions().mode(); format!("{:06o}", mode) } + + +fn format_inode(meta: &fs::Metadata) -> String { + format!("{}", meta.st_ino()) +} + + +fn format_dev(meta: &fs::Metadata) -> String { + format!("{}", meta.st_dev()) +} + + +fn format_nlink(meta: &fs::Metadata) -> String { + format!("{}", meta.st_nlink()) +} + + +fn format_size(meta: &fs::Metadata) -> String { + format!("{}", meta.len()) +} + + +fn format_uid(meta: &fs::Metadata) -> String { + format!("{}", meta.st_uid()) +} + + +fn format_gid(meta: &fs::Metadata) -> String { + format!("{}", meta.st_gid()) +} + + +fn format_username(meta: &fs::Metadata) -> String { + format!("xxx") +} + + +fn format_group(meta: &fs::Metadata) -> String { + format!("xxx") +} -- cgit v1.2.1