Skip to content

Commit

Permalink
fix: Include $crate for macro calls
Browse files Browse the repository at this point in the history
  • Loading branch information
gmpinder committed Aug 16, 2024
1 parent 8ce83ba commit 50ba091
Showing 1 changed file with 31 additions and 25 deletions.
56 changes: 31 additions & 25 deletions utils/src/macros.rs
Original file line number Diff line number Diff line change
Expand Up @@ -15,70 +15,70 @@ macro_rules! cmd {
::std::process::Command::new($command)
};
($command:ident, $($tail:tt)*) => {
cmd!(@ $command, $($tail)*)
$crate::cmd!(@ $command, $($tail)*)
};
($command:expr, $($tail:tt)*) => {
{
let mut c = cmd!($command);
cmd!(@ c, $($tail)*);
let mut c = $crate::cmd!($command);
$crate::cmd!(@ c, $($tail)*);
c
}
};
(@ $command:ident $(,)?) => { };
(@ $command:ident, for $for_expr:expr $(, $($tail:tt)*)?) => {
{
for arg in $for_expr.iter() {
cmd!($command, arg);
$crate::cmd!($command, arg);
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, for $iter:ident in $for_expr:expr => [ $($arg:expr),* $(,)? ] $(, $($tail:tt)*)?) => {
{
for $iter in $for_expr.iter() {
$(cmd!(@ $command, $arg);)*
$($crate::cmd!(@ $command, $arg);)*
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, for $iter:ident in $for_expr:expr => $arg:expr $(, $($tail:tt)*)?) => {
{
for $iter in $for_expr.iter() {
cmd!(@ $command, $arg);
$crate::cmd!(@ $command, $arg);
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, if let $let_pat:pat = $if_expr:expr => [ $($arg:expr),* $(,)? ] $(, $($tail:tt)*)?) => {
{
if let $let_pat = $if_expr {
$(cmd!(@ $command, $arg);)*
$($crate::cmd!(@ $command, $arg);)*
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, if let $let_pat:pat = $if_expr:expr => $arg:expr $(, $($tail:tt)*)?) => {
{
if let $let_pat = $if_expr {
cmd!(@ $command, $arg);
$crate::cmd!(@ $command, $arg);
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, if $if_expr:expr => [ $($arg:expr),* $(,)?] $(, $($tail:tt)*)?) => {
{
if $if_expr {
$(cmd!(@ $command, $arg);)*
$($crate::cmd!(@ $command, $arg);)*
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, if $if_expr:expr => $arg:expr $(, $($tail:tt)*)?) => {
{
if $if_expr {
cmd!(@ $command, $arg);
$crate::cmd!(@ $command, $arg);
}
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, |$cmd_ref:ident|? $op:block $(, $($tail:tt)*)?) => {
Expand All @@ -88,44 +88,50 @@ macro_rules! cmd {
Ok(())
};
op_fn(&mut $command)?;
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, |$cmd_ref:ident| $op:block $(, $($tail:tt)*)?) => {
{
let op_fn = |$cmd_ref: &mut ::std::process::Command| $op;
op_fn(&mut $command);
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, $key:expr => $value:expr $(, $($tail:tt)*)?) => {
{
$command.env($key, $value);
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, current_dir = $dir:expr $(, $($tail:tt)*)?) => {
{
$command.current_dir($dir);
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, stdin = $pipe:expr $(, $($tail:tt)*)?) => {
{
$command.stdin($pipe);
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, stdout = $pipe:expr $(, $($tail:tt)*)?) => {
{
$command.stdout($pipe);
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, stderr = $pipe:expr $(, $($tail:tt)*)?) => {
{
$command.stderr($pipe);
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
(@ $command:ident, $arg:expr $(, $($tail:tt)*)?) => {
{
$command.arg($arg);
$(cmd!(@ $command, $($tail)*);)*
$($crate::cmd!(@ $command, $($tail)*);)*
}
};
}
Expand All @@ -143,7 +149,7 @@ macro_rules! string_vec {
{
use $crate::string;
vec![
$(string!($string),)*
$($crate::string!($string),)*
]
}
};
Expand Down

0 comments on commit 50ba091

Please sign in to comment.