#[macro_export]
macro_rules! async_shell {
() => {};
($($t:tt)*) => {
{
$crate::__tokio_internal_builder!()
.arg(
$crate::__internal_command_builder!($($t)*)
).spawn()?.wait_with_output().await?
}
};
}
#[macro_export]
macro_rules! async_detach {
() => {};
($($t:tt)*) => {
{
$crate::__tokio_internal_builder!()
.arg(
$crate::__internal_command_builder!($($t)*)
)
.spawn()?
}
};
}
#[macro_export]
macro_rules! async_execute {
() => {};
($($t:tt)*) => {
{
let p = $crate::__tokio_internal_builder!()
.arg($crate::__internal_command_builder!($($t)*))
.output().await?;
std::string::String::from_utf8_lossy(
p.stdout.as_slice()
).to_string()
}
};
}
#[macro_export]
macro_rules! async_exec {
() => {{}};
($($t:tt)*) => {
tokio::process::Command::new("sh")
.arg("-c")
.arg($crate::__internal_command_builder!($($t)*))
.output()
.await?
.status
.success()
};
}