diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-11-02 09:56:31 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-11-08 11:08:03 +0200 |
commit | f7f22db6030464f63eb942da04b3d5e10351f770 (patch) | |
tree | f1436a78ecb4d50b0d5b791ea89e44e30a8b7f10 /libbuild2/install/rule.cxx | |
parent | 2c140c400cf9e3a93aabaeca8abfa1009c40bf19 (diff) |
More work on child process diagnostics buffering
Diffstat (limited to 'libbuild2/install/rule.cxx')
-rw-r--r-- | libbuild2/install/rule.cxx | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/libbuild2/install/rule.cxx b/libbuild2/install/rule.cxx index 9f01578..aa13169 100644 --- a/libbuild2/install/rule.cxx +++ b/libbuild2/install/rule.cxx @@ -848,7 +848,7 @@ namespace build2 text << "install " << chd; } - run (pp, args); + run (ctx, pp, args); } void file_rule:: @@ -903,7 +903,7 @@ namespace build2 } if (!ctx.dry_run) - run (pp, args); + run (ctx, pp, args); } void file_rule:: @@ -946,7 +946,7 @@ namespace build2 } if (!ctx.dry_run) - run (pp, args); + run (ctx, pp, args); #else // The -f part. // @@ -1179,8 +1179,13 @@ namespace build2 text << "uninstall " << reld; } - process pr (run_start (pp, args)); - r = run_finish_code (args, pr); + diag_buffer dbuf (rs.ctx); + process pr (run_start (pp, args, + 0 /* stdin */, + 1 /* stdout */, + dbuf.open (args[0]) /* stderr */)); + dbuf.read (); + r = run_finish_code (dbuf, args, pr); } if (!r) @@ -1279,7 +1284,7 @@ namespace build2 print_process (args); if (!ctx.dry_run) - run (pp, args); + run (ctx, pp, args); } return true; |