From 71d6b0d9f2c49ba093b59668ebb1b6fa78afb56b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E5=92=B2=E9=9B=85=20=C2=B7=20Misaki=20Masa?= Date: Mon, 12 Aug 2024 21:03:45 +0800 Subject: [PATCH] feat: add `status()` method to `Command` (#1473) --- 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), + } + }); } }