From 07fdebdbb02fde71d6e656ddd46b967347417502 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 9 Jul 2018 09:48:07 +0200 Subject: Implement publish command for publishing packages to archive repositories --- bdep/utility.txx | 38 ++++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 16 deletions(-) (limited to 'bdep/utility.txx') diff --git a/bdep/utility.txx b/bdep/utility.txx index 23a8c8a..84248d0 100644 --- a/bdep/utility.txx +++ b/bdep/utility.txx @@ -35,15 +35,10 @@ namespace bdep } } - template + template void - run (const P& prog, A&&... args) + finish (const P& prog, process& pr, bool io_read, bool io_write) { - process pr (start (0 /* stdin */, - 1 /* stdout */, - 2 /* stderr */, - prog, - forward (args)...)); if (!pr.wait ()) { const process_exit& e (*pr.exit); @@ -53,6 +48,25 @@ namespace bdep fail << "process " << prog << " " << e; } + + if (io_read) + fail << "error reading " << prog << " output"; + + if (io_write) + fail << "error writing " << prog << " input"; + } + + template + void + run (const P& prog, A&&... args) + { + process pr (start (0 /* stdin */, + 1 /* stdout */, + 2 /* stderr */, + prog, + forward (args)...)); + + finish (prog, pr); } // *_bpkg() @@ -215,15 +229,7 @@ namespace bdep 1 /* stdout */, 2 /* stderr */, forward (args)...)); - if (!pr.wait ()) - { - const process_exit& e (*pr.exit); - - if (e.normal ()) - throw failed (); // Assume the child issued diagnostics. - - fail << "process " << name_b (co) << " " << e; - } + finish_b (co, pr); } // *_manifest() -- cgit v1.1