mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
..
This commit is contained in:
parent
c9e929fdc3
commit
f734147120
3 changed files with 26 additions and 49 deletions
|
|
@ -37,16 +37,11 @@ impl Cha {
|
|||
len: t.raw_get("len").unwrap_or_default(),
|
||||
atime: parse_time(t.raw_get("atime").ok())?,
|
||||
btime: parse_time(t.raw_get("btime").ok())?,
|
||||
#[cfg(unix)]
|
||||
ctime: parse_time(t.raw_get("ctime").ok())?,
|
||||
mtime: parse_time(t.raw_get("mtime").ok())?,
|
||||
#[cfg(unix)]
|
||||
dev: t.raw_get("dev").unwrap_or_default(),
|
||||
#[cfg(unix)]
|
||||
uid: t.raw_get("uid").unwrap_or_default(),
|
||||
#[cfg(unix)]
|
||||
gid: t.raw_get("gid").unwrap_or_default(),
|
||||
#[cfg(unix)]
|
||||
nlink: t.raw_get("nlink").unwrap_or_default(),
|
||||
})
|
||||
.into_lua(lua)
|
||||
|
|
@ -70,15 +65,6 @@ impl UserData for Cha {
|
|||
fields.add_field_method_get("is_exec", |_, me| Ok(me.is_exec()));
|
||||
fields.add_field_method_get("is_sticky", |_, me| Ok(me.is_sticky()));
|
||||
|
||||
#[cfg(unix)]
|
||||
{
|
||||
use std::ops::Not;
|
||||
fields.add_field_method_get("dev", |_, me| Ok(me.is_dummy().not().then_some(me.dev)));
|
||||
fields.add_field_method_get("uid", |_, me| Ok(me.is_dummy().not().then_some(me.uid)));
|
||||
fields.add_field_method_get("gid", |_, me| Ok(me.is_dummy().not().then_some(me.gid)));
|
||||
fields.add_field_method_get("nlink", |_, me| Ok(me.is_dummy().not().then_some(me.nlink)));
|
||||
}
|
||||
|
||||
fields.add_field_method_get("len", |_, me| Ok(me.len));
|
||||
fields.add_field_method_get("atime", |_, me| {
|
||||
Ok(me.atime.and_then(|t| t.duration_since(UNIX_EPOCH).map(|d| d.as_secs_f64()).ok()))
|
||||
|
|
@ -86,13 +72,16 @@ impl UserData for Cha {
|
|||
fields.add_field_method_get("btime", |_, me| {
|
||||
Ok(me.btime.and_then(|t| t.duration_since(UNIX_EPOCH).map(|d| d.as_secs_f64()).ok()))
|
||||
});
|
||||
#[cfg(unix)]
|
||||
fields.add_field_method_get("ctime", |_, me| {
|
||||
Ok(me.ctime.and_then(|t| t.duration_since(UNIX_EPOCH).map(|d| d.as_secs_f64()).ok()))
|
||||
});
|
||||
fields.add_field_method_get("mtime", |_, me| {
|
||||
Ok(me.mtime.and_then(|t| t.duration_since(UNIX_EPOCH).map(|d| d.as_secs_f64()).ok()))
|
||||
});
|
||||
fields.add_field_method_get("dev", |_, me| Ok(me.dev));
|
||||
fields.add_field_method_get("uid", |_, me| Ok(me.uid));
|
||||
fields.add_field_method_get("gid", |_, me| Ok(me.gid));
|
||||
fields.add_field_method_get("nlink", |_, me| Ok(me.nlink));
|
||||
}
|
||||
|
||||
fn add_methods<M: UserDataMethods<Self>>(methods: &mut M) {
|
||||
|
|
|
|||
|
|
@ -13,16 +13,11 @@ pub struct Cha {
|
|||
pub len: u64,
|
||||
pub atime: Option<SystemTime>,
|
||||
pub btime: Option<SystemTime>,
|
||||
#[cfg(unix)]
|
||||
pub ctime: Option<SystemTime>,
|
||||
pub mtime: Option<SystemTime>,
|
||||
#[cfg(unix)]
|
||||
pub dev: libc::dev_t,
|
||||
#[cfg(unix)]
|
||||
pub uid: u32,
|
||||
#[cfg(unix)]
|
||||
pub gid: u32,
|
||||
#[cfg(unix)]
|
||||
pub nlink: u64,
|
||||
}
|
||||
|
||||
|
|
@ -35,22 +30,17 @@ impl Deref for Cha {
|
|||
impl Default for Cha {
|
||||
fn default() -> Self {
|
||||
Self {
|
||||
kind: ChaKind::DUMMY,
|
||||
mode: ChaMode::empty(),
|
||||
len: 0,
|
||||
atime: None,
|
||||
btime: None,
|
||||
#[cfg(unix)]
|
||||
ctime: None,
|
||||
mtime: None,
|
||||
#[cfg(unix)]
|
||||
dev: 0,
|
||||
#[cfg(unix)]
|
||||
uid: 0,
|
||||
#[cfg(unix)]
|
||||
gid: 0,
|
||||
#[cfg(unix)]
|
||||
nlink: 0,
|
||||
kind: ChaKind::DUMMY,
|
||||
mode: ChaMode::empty(),
|
||||
len: 0,
|
||||
atime: None,
|
||||
btime: None,
|
||||
ctime: None,
|
||||
mtime: None,
|
||||
dev: 0,
|
||||
uid: 0,
|
||||
gid: 0,
|
||||
nlink: 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -136,17 +126,15 @@ impl Cha {
|
|||
len: m.len(),
|
||||
atime: m.accessed().ok(),
|
||||
btime: m.created().ok(),
|
||||
#[cfg(unix)]
|
||||
ctime: UNIX_EPOCH.checked_add(Duration::new(m.ctime() as u64, m.ctime_nsec() as u32)),
|
||||
ctime: unix_either!(
|
||||
UNIX_EPOCH.checked_add(Duration::new(m.ctime() as u64, m.ctime_nsec() as u32)),
|
||||
None
|
||||
),
|
||||
mtime: m.modified().ok(),
|
||||
#[cfg(unix)]
|
||||
dev: m.dev() as _,
|
||||
#[cfg(unix)]
|
||||
uid: m.uid() as _,
|
||||
#[cfg(unix)]
|
||||
gid: m.gid() as _,
|
||||
#[cfg(unix)]
|
||||
nlink: m.nlink() as _,
|
||||
dev: unix_either!(m.dev(), 0) as _,
|
||||
uid: unix_either!(m.uid(), 0) as _,
|
||||
gid: unix_either!(m.gid(), 0) as _,
|
||||
nlink: unix_either!(m.nlink(), 0) as _,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -57,9 +57,9 @@ end
|
|||
function Linemode:permissions() return self._file.cha:perm() or "" end
|
||||
|
||||
function Linemode:owner()
|
||||
local user = self._file.cha.uid and ya.user_name(self._file.cha.uid) or self._file.cha.uid
|
||||
local group = self._file.cha.gid and ya.group_name(self._file.cha.gid) or self._file.cha.gid
|
||||
return string.format("%s:%s", user or "-", group or "-")
|
||||
local user = ya.user_name and ya.user_name(self._file.cha.uid) or self._file.cha.uid
|
||||
local group = ya.group_name and ya.group_name(self._file.cha.gid) or self._file.cha.gid
|
||||
return string.format("%s:%s", user, group)
|
||||
end
|
||||
|
||||
function Linemode:redraw()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue