add print field to RunStep

A new print field is added to RunStep that will control whether it prints the cmd before running it.  By default it will be set to builder.verbose which means it will print only if builder.verbose is true.
This commit is contained in:
Jonathan Marler 2021-10-29 14:03:00 -06:00 committed by Andrew Kelley
parent dcd88ae568
commit 9c1c1d478d

View File

@ -37,6 +37,9 @@ stdin_behavior: std.ChildProcess.StdIo = .Inherit,
expected_exit_code: u8 = 0,
/// Print the command before running it
print: bool,
pub const StdIoAction = union(enum) {
inherit,
ignore,
@ -58,6 +61,7 @@ pub fn create(builder: *Builder, name: []const u8) *RunStep {
.argv = ArrayList(Arg).init(builder.allocator),
.cwd = null,
.env_map = null,
.print = builder.verbose,
};
return self;
}
@ -181,6 +185,9 @@ fn make(step: *Step) !void {
child.stdout_behavior = stdIoActionToBehavior(self.stdout_action);
child.stderr_behavior = stdIoActionToBehavior(self.stderr_action);
if (self.print)
printCmd(cwd, argv);
child.spawn() catch |err| {
warn("Unable to spawn {s}: {s}\n", .{ argv[0], @errorName(err) });
return err;