aboutsummaryrefslogtreecommitdiff
path: root/bdep/utility.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-04-30 12:27:49 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-04-30 12:27:49 +0200
commit0eed5982bbca328cc6319d36708d64a285160972 (patch)
tree08adc035640e3869aac6c71ccd8b6cebd73ad442 /bdep/utility.cxx
parentb2d5f82512d0118a0668ce02f1a0730c3dcd50b8 (diff)
Implement multi-project synchronization
Now the same configuration can be shared by multiple projects and a sync command from any of them (or from the build system hook) will synchronize everyting.
Diffstat (limited to 'bdep/utility.cxx')
-rw-r--r--bdep/utility.cxx17
1 files changed, 17 insertions, 0 deletions
diff --git a/bdep/utility.cxx b/bdep/utility.cxx
index e048a5a..15fb599 100644
--- a/bdep/utility.cxx
+++ b/bdep/utility.cxx
@@ -109,6 +109,23 @@ namespace bdep
: "bpkg" BDEP_EXE_SUFFIX;
}
+ void
+ finish_bpkg (const common_options& co, process& pr, bool io)
+ {
+ if (!pr.wait ())
+ {
+ const process_exit& e (*pr.exit);
+
+ if (e.normal ())
+ throw failed (); // Assume the child issued diagnostics.
+
+ fail << "process " << name_bpkg (co) << " " << e;
+ }
+
+ if (io)
+ fail << "error reading " << name_bpkg (co) << " output";
+ }
+
const char*
name_b (const common_options& co)
{