diff --git a/yazi-plugin/src/process/child.rs b/yazi-plugin/src/process/child.rs index e28432aa..26e14679 100644 --- a/yazi-plugin/src/process/child.rs +++ b/yazi-plugin/src/process/child.rs @@ -2,14 +2,18 @@ use std::{ops::DerefMut, time::Duration}; use futures::future::try_join3; use mlua::{AnyUserData, ExternalError, IntoLua, IntoLuaMulti, Table, UserData, Value}; -use tokio::{io::{self, AsyncBufReadExt, AsyncReadExt, AsyncWriteExt, BufReader, BufWriter}, process::{ChildStderr, ChildStdin, ChildStdout}, select}; +use tokio::{ + io::{self, AsyncBufReadExt, AsyncReadExt, AsyncWriteExt, BufReader, BufWriter}, + process::{ChildStderr, ChildStdin, ChildStdout}, + select, +}; use super::Status; use crate::{Error, process::Output}; pub struct Child { - inner: tokio::process::Child, - stdin: Option>, + inner: tokio::process::Child, + stdin: Option>, stdout: Option>, stderr: Option>, } @@ -149,5 +153,10 @@ impl UserData for Child { Some(stderr) => lua.create_any_userdata(stderr.into_inner())?.into_lua(lua), None => Ok(Value::Nil), }); + + methods.add_method_mut("id", |_, me, ()| match me.inner.id() { + Some(id) => Ok(Value::Integer(id as i64)), + None => Ok(Value::Nil), + }); } }