summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2018-10-01 18:11:20 +0300
committerLars Wirzenius <liw@liw.fi>2018-10-01 18:11:20 +0300
commit22fded7eb2bc84aceda4d67749d48554b80be2f1 (patch)
tree3179eed6eb72fc16ac2cac112dd8f440b47c3de5
parent598bcdd90e38fc170c8b85ea713358adfd56ade9 (diff)
downloadsummainrs-22fded7eb2bc84aceda4d67749d48554b80be2f1.tar.gz
Change: add rfc822-style output (not all fields yet)
-rw-r--r--src/main.rs63
1 files 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")
+}