unc_sandbox_utils/
sync.rs1use std::path::Path;
2use std::process::{Child, Command};
3
4pub fn run_with_options(options: &[&str]) -> anyhow::Result<Child> {
5 let bin_path = crate::ensure_sandbox_bin()?;
6 Command::new(bin_path)
7 .args(options)
8 .envs(crate::log_vars())
9 .spawn()
10 .map_err(Into::into)
11}
12
13pub fn run(home_dir: impl AsRef<Path>, rpc_port: u16, network_port: u16) -> anyhow::Result<Child> {
14 let home_dir = home_dir.as_ref().to_str().unwrap();
15 run_with_options(&[
16 "--home",
17 home_dir,
18 "run",
19 "--rpc-addr",
20 &crate::local_addr(rpc_port),
21 "--network-addr",
22 &crate::local_addr(network_port),
23 ])
24}
25
26pub fn init(home_dir: impl AsRef<Path>) -> anyhow::Result<Child> {
27 let bin_path = crate::ensure_sandbox_bin()?;
28 let home_dir = home_dir.as_ref().to_str().unwrap();
29 Command::new(bin_path)
30 .envs(crate::log_vars())
31 .args(["--home", home_dir, "init"])
32 .spawn()
33 .map_err(Into::into)
34}