feat: add status() method to Command

This commit is contained in:
sxyazi 2024-08-12 21:02:43 +08:00
parent a39409e699
commit 3a496bbd39
No known key found for this signature in database

View file

@ -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),
}
});
}
}