captureChildProcess
Function parameters
Parameters
- s:*Step
- progress_node:std.Progress.Node
- argv:[]const []const u8
Type definitions in this namespace
Types
Functions in this namespace
Functions
- make
- If the Step's `make` function reports `error.MakeFailed`, it indicates they
- dump
- For debugging purposes, prints identifying information about this Step.
- evalZigProcess
- Assumes that argv contains `--listen=-` and that the process being spawned
- installFile
- Wrapper around `std.fs.Dir.updateFile` that handles verbose and error output.
- installDir
- Wrapper around `std.fs.Dir.makePathStatus` that handles verbose and error output.
- cacheHit
- Prefer `cacheHitAndWatch` unless you already added watch inputs
- cacheHitAndWatch
- Clears previous watch inputs, if any, and then populates watch inputs from
- writeManifest
- Prefer `writeManifestAndWatch` unless you already added watch inputs
- writeManifestAndWatch
- Clears previous watch inputs, if any, and then populates watch inputs from
- singleUnchangingWatchInput
- For steps that have a single input that never changes when re-running `make`.
- addWatchInput
- Places a *file* dependency on the path.
- addDirectoryWatchInput
- Any changes inside the directory will trigger invalidation.
- addDirectoryWatchInputFromPath
- Any changes inside the directory will trigger invalidation.
- reset
- Implementation detail of file watching and forced rebuilds.
- recursiveReset
- Implementation detail of file watching.
Source
Implementation
pub fn captureChildProcess(
s: *Step,
progress_node: std.Progress.Node,
argv: []const []const u8,
) !std.process.Child.RunResult {
const arena = s.owner.allocator;
try handleChildProcUnsupported(s, null, argv);
try handleVerbose(s.owner, null, argv);
const result = std.process.Child.run(.{
.allocator = arena,
.argv = argv,
.progress_node = progress_node,
}) catch |err| return s.fail("failed to run {s}: {s}", .{ argv[0], @errorName(err) });
if (result.stderr.len > 0) {
try s.result_error_msgs.append(arena, result.stderr);
}
return result;
}