mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
Update command.rs
This commit is contained in:
parent
9babeef6d9
commit
bb887f9230
1 changed files with 12 additions and 6 deletions
|
|
@ -1,4 +1,5 @@
|
||||||
use std::process::Stdio;
|
use std::process::Stdio;
|
||||||
|
use std::ffi::OsString;
|
||||||
use mlua::{AnyUserData, ExternalError, IntoLuaMulti, Lua, Table, UserData, Value};
|
use mlua::{AnyUserData, ExternalError, IntoLuaMulti, Lua, Table, UserData, Value};
|
||||||
use tokio::process::{ChildStderr, ChildStdin, ChildStdout};
|
use tokio::process::{ChildStderr, ChildStdin, ChildStdout};
|
||||||
use super::{Child, output::Output};
|
use super::{Child, output::Output};
|
||||||
|
|
@ -63,27 +64,32 @@ impl UserData for Command {
|
||||||
}
|
}
|
||||||
|
|
||||||
methods.add_function_mut("arg", |_, (ud, arg): (AnyUserData, mlua::String)| {
|
methods.add_function_mut("arg", |_, (ud, arg): (AnyUserData, mlua::String)| {
|
||||||
ud.borrow_mut::<Self>()?.inner.arg(arg.to_string_lossy());
|
let arg = OsString::from(arg.to_str()?);
|
||||||
|
ud.borrow_mut::<Self>()?.inner.arg(arg);
|
||||||
Ok(ud)
|
Ok(ud)
|
||||||
});
|
});
|
||||||
|
|
||||||
methods.add_function_mut("args", |_, (ud, args): (AnyUserData, Vec<mlua::String>)| {
|
methods.add_function_mut("args", |_, (ud, args): (AnyUserData, Vec<mlua::String>)| {
|
||||||
let args: Vec<_> = args.iter().map(|arg| arg.to_string_lossy()).collect();
|
let args: Vec<OsString> = args
|
||||||
|
.iter()
|
||||||
|
.map(|arg| OsString::from(arg.to_str().unwrap()))
|
||||||
|
.collect();
|
||||||
ud.borrow_mut::<Self>()?.inner.args(&args);
|
ud.borrow_mut::<Self>()?.inner.args(&args);
|
||||||
Ok(ud)
|
Ok(ud)
|
||||||
});
|
});
|
||||||
|
|
||||||
methods.add_function_mut("cwd", |_, (ud, dir): (AnyUserData, mlua::String)| {
|
methods.add_function_mut("cwd", |_, (ud, dir): (AnyUserData, mlua::String)| {
|
||||||
ud.borrow_mut::<Self>()?.inner.current_dir(dir.to_str()?);
|
let dir = OsString::from(dir.to_str()?);
|
||||||
|
ud.borrow_mut::<Self>()?.inner.current_dir(dir);
|
||||||
Ok(ud)
|
Ok(ud)
|
||||||
});
|
});
|
||||||
|
|
||||||
methods.add_function_mut(
|
methods.add_function_mut(
|
||||||
"env",
|
"env",
|
||||||
|_, (ud, key, value): (AnyUserData, mlua::String, mlua::String)| {
|
|_, (ud, key, value): (AnyUserData, mlua::String, mlua::String)| {
|
||||||
ud.borrow_mut::<Self>()?
|
let key = OsString::from(key.to_str()?);
|
||||||
.inner
|
let value = OsString::from(value.to_str()?);
|
||||||
.env(key.to_string_lossy(), value.to_string_lossy());
|
ud.borrow_mut::<Self>()?.inner.env(key, value);
|
||||||
Ok(ud)
|
Ok(ud)
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue