From 86738ce6cfe4a7b0cffd642f9896baac17bccc67 Mon Sep 17 00:00:00 2001 From: Terts Diepraam Date: Sun, 9 Oct 2022 00:27:32 +0200 Subject: [PATCH 1/3] ls,stat: Show more info in long format --- src/uucore/src/lib/features/fs.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/uucore/src/lib/features/fs.rs b/src/uucore/src/lib/features/fs.rs index 2d41db418..05f191c47 100644 --- a/src/uucore/src/lib/features/fs.rs +++ b/src/uucore/src/lib/features/fs.rs @@ -401,12 +401,26 @@ pub fn canonicalize>( } #[cfg(not(unix))] -#[allow(unused_variables)] pub fn display_permissions(metadata: &fs::Metadata, display_file_type: bool) -> String { + let write = if metadata.permissions().readonly() { + '-' + } else { + 'w' + }; + if display_file_type { - return String::from("----------"); + let file_type = if metadata.is_symlink() { + 'l' + } else if metadata.is_dir() { + 'd' + } else { + '-' + }; + + format!("{0}r{1}xr{1}xr{1}x", file_type, write) + } else { + format!("r{0}xr{0}xr{0}x", write) } - String::from("---------") } #[cfg(unix)] From b3e6472d025a005bfe804fd5323134486bd7db79 Mon Sep 17 00:00:00 2001 From: Terts Diepraam Date: Sun, 9 Oct 2022 12:03:44 +0200 Subject: [PATCH 2/3] test_ls: adapt to new windows permissions --- tests/by-util/test_ls.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index e083464d6..0ea88f751 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -964,9 +964,9 @@ fn test_ls_long() { let result = scene.ucmd().arg(arg).arg("test-long").succeeds(); #[cfg(not(windows))] result.stdout_matches(&Regex::new(r"[-bcCdDlMnpPsStTx?]([r-][w-][xt-]){3}.*").unwrap()); - + #[cfg(windows)] - result.stdout_contains("---------- 1 somebody somegroup"); + result.stdout_matches(&Regex::new(r"[-dl](r[w-]x){3}.*").unwrap()); } } From 538e8eca0b34f2492d94658af6fb8ddc708e1679 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sun, 9 Oct 2022 20:03:06 +0200 Subject: [PATCH 3/3] Fix coding style --- tests/by-util/test_ls.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/by-util/test_ls.rs b/tests/by-util/test_ls.rs index 0ea88f751..f37a5ee81 100644 --- a/tests/by-util/test_ls.rs +++ b/tests/by-util/test_ls.rs @@ -964,7 +964,7 @@ fn test_ls_long() { let result = scene.ucmd().arg(arg).arg("test-long").succeeds(); #[cfg(not(windows))] result.stdout_matches(&Regex::new(r"[-bcCdDlMnpPsStTx?]([r-][w-][xt-]){3}.*").unwrap()); - + #[cfg(windows)] result.stdout_matches(&Regex::new(r"[-dl](r[w-]x){3}.*").unwrap()); }