This commit is contained in:
sxyazi 2023-11-07 09:40:45 +08:00
parent c6b39e2e9f
commit 12bd678539
No known key found for this signature in database
2 changed files with 10 additions and 8 deletions

View file

@ -73,7 +73,14 @@ impl Files {
reg.add_field_method_get("accessed", |_, me| {
Ok(me.accessed.and_then(|t| t.duration_since(UNIX_EPOCH).map(|d| d.as_secs_f64()).ok()))
});
reg.add_method("permissions", |_, me, ()| Ok(yazi_shared::permissions(me.permissions)));
reg.add_method("permissions", |_, me, ()| {
Ok(
#[cfg(unix)]
Some(yazi_shared::permissions(me.permissions)),
#[cfg(windows)]
None,
)
});
// Extension
reg.add_field_method_get("name", |_, me| {

View file

@ -91,15 +91,10 @@ pub fn copy_with_progress(from: &Path, to: &Path) -> mpsc::Receiver<Result<u64,
rx
}
// Convert a file mode to a string representation
#[cfg(windows)]
#[allow(clippy::collapsible_else_if)]
pub fn permissions(_: u32) -> Option<String> { None }
// Convert a file mode to a string representation
#[cfg(unix)]
#[allow(clippy::collapsible_else_if)]
pub fn permissions(mode: u32) -> Option<String> {
pub fn permissions(mode: u32) -> String {
use libc::{mode_t, S_IFBLK, S_IFCHR, S_IFDIR, S_IFIFO, S_IFLNK, S_IFMT, S_IFSOCK, S_IRGRP, S_IROTH, S_IRUSR, S_ISGID, S_ISUID, S_ISVTX, S_IWGRP, S_IWOTH, S_IWUSR, S_IXGRP, S_IXOTH, S_IXUSR};
let mut s = String::with_capacity(10);
@ -143,7 +138,7 @@ pub fn permissions(mode: u32) -> Option<String> {
if m & S_ISVTX != 0 { 'T' } else { '-' }
});
Some(s)
s
}
// Find the max common root of a list of files