feat: Expose the pid of the running process to the lua api.

This commit is contained in:
unknown 2025-04-14 00:08:09 +02:00
parent 0ada74efbe
commit 69ecbc5291

View file

@ -2,7 +2,11 @@ use std::{ops::DerefMut, time::Duration};
use futures::future::try_join3; use futures::future::try_join3;
use mlua::{AnyUserData, ExternalError, IntoLua, IntoLuaMulti, Table, UserData, Value}; 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 super::Status;
use crate::{Error, process::Output}; use crate::{Error, process::Output};
@ -149,5 +153,10 @@ impl UserData for Child {
Some(stderr) => lua.create_any_userdata(stderr.into_inner())?.into_lua(lua), Some(stderr) => lua.create_any_userdata(stderr.into_inner())?.into_lua(lua),
None => Ok(Value::Nil), 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),
});
} }
} }