mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
Made uid and gid nil on Windows and added ownership option for linemode
This commit is contained in:
parent
3c88edbc4d
commit
5501436953
3 changed files with 24 additions and 4 deletions
|
|
@ -88,6 +88,7 @@ keymap = [
|
||||||
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
|
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
|
||||||
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
|
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
|
||||||
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" },
|
{ 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" },
|
{ on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" },
|
||||||
|
|
||||||
# Copy
|
# 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 "")
|
spans[#spans + 1] = ui.Span(time and os.date("%y-%m-%d %H:%M", time // 1) or "")
|
||||||
elseif mode == "permissions" then
|
elseif mode == "permissions" then
|
||||||
spans[#spans + 1] = ui.Span(f.cha:permissions() or "")
|
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
|
end
|
||||||
|
|
||||||
spans[#spans + 1] = ui.Span(" ")
|
spans[#spans + 1] = ui.Span(" ")
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
use std::time::{Duration, SystemTime, UNIX_EPOCH};
|
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 yazi_shared::fs::ChaKind;
|
||||||
|
|
||||||
use crate::bindings::Cast;
|
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_exec", |_, me| Ok(me.is_exec()));
|
||||||
reg.add_field_method_get("is_sticky", |_, me| Ok(me.is_sticky()));
|
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("uid", |_, me| {
|
||||||
reg.add_field_method_get("gid", |_, me| Ok(me.gid));
|
#[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));
|
reg.add_field_method_get("length", |_, me| Ok(me.len));
|
||||||
|
|
@ -39,6 +49,7 @@ impl Cha {
|
||||||
reg.add_field_method_get("accessed", |_, me| {
|
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()))
|
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, ()| {
|
reg.add_method("permissions", |_, me, ()| {
|
||||||
Ok(
|
Ok(
|
||||||
#[cfg(unix)]
|
#[cfg(unix)]
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue