#[macro_export]
macro_rules! win_cmd {
($program:literal) => {{
let mut cmd = match std::env::consts::OS {
"windows" => std::process::Command::new("cmd"),
_ => std::process::Command::new($program),
};
if std::env::consts::OS == "windows" {
cmd.arg("/C").arg($program);
};
cmd
}};
}
#[macro_export]
macro_rules! cargo {
($( $arg:literal ),*) => {{
let mut args: Vec<&str> = Vec::new();
$( args.push($arg); )*
std::process::Command::new("cargo")
.args(args)
.stderr(std::process::Stdio::inherit())
.stdout(std::process::Stdio::inherit())
.output()
}};
($args:expr) => {{
std::process::Command::new("cargo")
.args($args)
.stderr(std::process::Stdio::inherit())
.stdout(std::process::Stdio::inherit())
.output()
}};
}
#[macro_export]
macro_rules! pnpm {
($( $arg:literal ),*) => {{
let mut args: Vec<&str> = Vec::new();
$( args.push($arg); )*
$crate::win_cmd!("pnpm")
.args(args)
.stderr(std::process::Stdio::inherit())
.stdout(std::process::Stdio::inherit())
.output()
}};
($args:expr) => {{
$crate::win_cmd!("pnpm")
.args($args)
.stderr(std::process::Stdio::inherit())
.stdout(std::process::Stdio::inherit())
.output()
}};
}