Skip to content
Snippets Groups Projects
Verified Commit e4b03cdd authored by STEVAN Antoine's avatar STEVAN Antoine :crab:
Browse files

add support for env in macros

parent fbf25729
No related branches found
No related tags found
No related merge requests found
......@@ -24,16 +24,11 @@ fn main() {
println!(" => i'm here even if a command fails");
println!("");
nob::_run_cmd("echo", vec!["-n", "VAR without env: "], vec![], false);
nob::_run_cmd("printenv", vec!["VAR"], vec![], false);
nob::run_cmd!(@"echo", "-n", "VAR and ANOTHER without env: ");
nob::run_cmd!(@"printenv", "VAR", "ANOTHER");
println!("");
nob::_run_cmd("echo", vec!["-n", "VAR with env: "], vec![], false);
nob::_run_cmd(
"printenv",
vec!["VAR"],
vec![("VAR", "i'm a variable")],
false,
);
nob::run_cmd!(@"echo", "-n", "VAR and ANOTHER with env: ");
nob::run_cmd!(@"printenv", "VAR", "ANOTHER" ; "VAR" => "i'm a variable", "ANOTHER" => "me too");
println!("");
nob::run_cmd_and_fail!("ls", "djawkldjwla");
......
......@@ -32,9 +32,15 @@ macro_rules! run_cmd {
($cmd:expr $(, $args:expr)*) => {{
nob::_run_cmd($cmd, vec![$($args),*], vec![], true)
}};
($cmd:expr $(, $args:expr)* ; $($k:expr => $v:expr),*) => {{
nob::_run_cmd($cmd, vec![$($args),*], vec![$(($k, $v),)*], true)
}};
(@$cmd:expr $(, $args:expr)*) => {{
nob::_run_cmd($cmd, vec![$($args),*], vec![], false)
}};
(@$cmd:expr $(, $args:expr)* ; $($k:expr => $v:expr),*) => {{
nob::_run_cmd($cmd, vec![$($args),*], vec![$(($k, $v),)*], false)
}};
}
#[macro_export]
......@@ -42,9 +48,15 @@ macro_rules! run_cmd_and_fail {
($cmd:expr $(, $args:expr)*) => {{
nob::pass_or_fail(nob::_run_cmd($cmd, vec![$($args),*], vec![], true))
}};
($cmd:expr $(, $args:expr)* ; $($k:expr => $v:expr),*) => {{
nob::pass_or_fail(nob::_run_cmd($cmd, vec![$($args),*], vec![$(($k, $v),)*], true))
}};
(@$cmd:expr $(, $args:expr)*) => {{
nob::pass_or_fail(nob::_run_cmd($cmd, vec![$($args),*], vec![], false))
}};
(@$cmd:expr $(, $args:expr)* ; $($k:expr => $v:expr),*) => {{
nob::pass_or_fail(nob::_run_cmd($cmd, vec![$($args),*], vec![$(($k, $v),)*], false))
}};
}
#[macro_export]
......@@ -54,11 +66,21 @@ macro_rules! run_cmd_as_vec {
let cmd_name = iter.next().expect("no command specified");
nob::_run_cmd(cmd_name, iter.collect::<Vec<_>>(), vec![], true)
}};
($cmd_and_args:expr ; $($k:expr => $v:expr),*) => {{
let mut iter = $cmd_and_args.into_iter();
let cmd_name = iter.next().expect("no command specified");
nob::_run_cmd(cmd_name, iter.collect::<Vec<_>>(), vec![$(($k, $v),)*], true)
}};
(@$cmd_and_args:expr) => {{
let mut iter = $cmd_and_args.into_iter();
let cmd_name = iter.next().expect("no command specified");
nob::_run_cmd(cmd_name, iter.collect::<Vec<_>>(), vec![], false)
}};
(@$cmd_and_args:expr ; $($k:expr => $v:expr),*) => {{
let mut iter = $cmd_and_args.into_iter();
let cmd_name = iter.next().expect("no command specified");
nob::_run_cmd(cmd_name, iter.collect::<Vec<_>>(), vec![$(($k, $v),)*], false)
}};
}
#[macro_export]
......@@ -73,6 +95,11 @@ macro_rules! run_cmd_as_vec_and_fail {
true,
))
}};
($cmd_and_args:expr ; $($k:expr => $v:expr),*) => {{
let mut iter = $cmd_and_args.into_iter();
let cmd_name = iter.next().expect("no command specified");
nob::pass_or_fail(nob::_run_cmd(cmd_name, iter.collect::<Vec<_>>(), vec![$(($k, $v),)*], true))
}};
(@$cmd_and_args:expr) => {{
let mut iter = $cmd_and_args.into_iter();
let cmd_name = iter.next().expect("no command specified");
......@@ -83,4 +110,9 @@ macro_rules! run_cmd_as_vec_and_fail {
false,
))
}};
(@$cmd_and_args:expr ; $($k:expr => $v:expr),*) => {{
let mut iter = $cmd_and_args.into_iter();
let cmd_name = iter.next().expect("no command specified");
nob::pass_or_fail(nob::_run_cmd(cmd_name, iter.collect::<Vec<_>>(), vec![$(($k, $v),)*], false))
}};
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment