From 3a496bbd39f0f0b0e8ad5765cba3a98844d4015b Mon Sep 17 00:00:00 2001 From: sxyazi Date: Mon, 12 Aug 2024 21:02:43 +0800 Subject: [PATCH] feat: add `status()` method to `Command` --- yazi-plugin/src/process/command.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/yazi-plugin/src/process/command.rs b/yazi-plugin/src/process/command.rs index 5877345c..8ed4f9fc 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), + } + }); } }