diff --git a/yazi-plugin/src/process/command.rs b/yazi-plugin/src/process/command.rs index 5877345c1..8ed4f9fc6 100644 --- a/yazi-plugin/src/process/command.rs +++ b/yazi-plugin/src/process/command.rs @@ -4,6 +4,7 @@ use mlua::{AnyUserData, ExternalError, IntoLuaMulti, Lua, Table, UserData, Value use tokio::process::{ChildStderr, ChildStdin, ChildStdout}; use super::{output::Output, Child}; +use crate::process::Status; pub struct Command { inner: tokio::process::Command, @@ -112,5 +113,11 @@ impl UserData for Command { Err(e) => (Value::Nil, e.raw_os_error()).into_lua_multi(lua), } }); + methods.add_async_method_mut("status", |lua, me, ()| async move { + match me.inner.status().await { + Ok(status) => (Status::new(status), Value::Nil).into_lua_multi(lua), + Err(e) => (Value::Nil, e.raw_os_error()).into_lua_multi(lua), + } + }); } }