mirror of
https://github.com/sxyazi/yazi.git
synced 2024-10-05 22:57:20 +03:00
Made uid and gid nil on Windows and added ownership option for linemode
This commit is contained in:
parent
3c88edbc4d
commit
5501436953
@ -88,6 +88,7 @@ keymap = [
|
||||
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
|
||||
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
|
||||
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" },
|
||||
{ on = [ "m", "o" ], run = "linemode owner", desc = "Set linemode to owner" },
|
||||
{ on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" },
|
||||
|
||||
# Copy
|
||||
|
@ -21,6 +21,14 @@ function Folder:linemode(area, files)
|
||||
spans[#spans + 1] = ui.Span(time and os.date("%y-%m-%d %H:%M", time // 1) or "")
|
||||
elseif mode == "permissions" then
|
||||
spans[#spans + 1] = ui.Span(f.cha:permissions() or "")
|
||||
elseif mode == "owner" then
|
||||
if f.cha.uid and f.cha.gid then
|
||||
local user = ya.user_name(f.cha.uid)
|
||||
local group = ya.user_name(f.cha.uid)
|
||||
if user and group then
|
||||
spans[#spans + 1] = ui.Span(user .. ":" .. group)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
spans[#spans + 1] = ui.Span(" ")
|
||||
|
@ -1,6 +1,6 @@
|
||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
||||
|
||||
use mlua::{AnyUserData, ExternalError, Lua, Table, UserDataFields, UserDataMethods, UserDataRef};
|
||||
use mlua::{AnyUserData, ExternalError, Lua, Table, UserDataFields, UserDataMethods, UserDataRef, Value::Nil};
|
||||
use yazi_shared::fs::ChaKind;
|
||||
|
||||
use crate::bindings::Cast;
|
||||
@ -23,10 +23,20 @@ impl Cha {
|
||||
reg.add_field_method_get("is_exec", |_, me| Ok(me.is_exec()));
|
||||
reg.add_field_method_get("is_sticky", |_, me| Ok(me.is_sticky()));
|
||||
|
||||
#[cfg(unix)]
|
||||
#[allow(unused_variables)]
|
||||
{
|
||||
reg.add_field_method_get("uid", |_, me| Ok(me.uid));
|
||||
reg.add_field_method_get("gid", |_, me| Ok(me.gid));
|
||||
reg.add_field_method_get("uid", |_, me| {
|
||||
#[cfg(unix)]
|
||||
return Ok(me.uid);
|
||||
#[cfg(windows)]
|
||||
return Ok(Nil);
|
||||
});
|
||||
reg.add_field_method_get("gid", |_, me| {
|
||||
#[cfg(unix)]
|
||||
return Ok(me.gid);
|
||||
#[cfg(windows)]
|
||||
return Ok(Nil);
|
||||
});
|
||||
}
|
||||
|
||||
reg.add_field_method_get("length", |_, me| Ok(me.len));
|
||||
@ -39,6 +49,7 @@ impl Cha {
|
||||
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()))
|
||||
});
|
||||
#[allow(unused_variables)]
|
||||
reg.add_method("permissions", |_, me, ()| {
|
||||
Ok(
|
||||
#[cfg(unix)]
|
||||
|
Loading…
Reference in New Issue
Block a user