summaryrefslogtreecommitdiffhomepage
path: root/build.sh
diff options
context:
space:
mode:
authorLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2017-12-22 18:40:49 +0000
committerLucio Andrés Illanes Albornoz (arab, vxp) <lucio@lucioillanes.de>2017-12-22 18:47:27 +0000
commit30ae149529f8ce02bee49c0706d67e677e44f24c (patch)
tree38b66fde3e76ef73606b80e1bdb2f282ffc5d7f5 /build.sh
parent3b355c1f44adad46b0c1a16d29f7b0f12b0c029c (diff)
downloadmidipix_build-30ae149529f8ce02bee49c0706d67e677e44f24c.tar.bz2
midipix_build-30ae149529f8ce02bee49c0706d67e677e44f24c.tar.xz
build.sh:fail_pkg: terminate pending builds given build failure, -P, and absence of -R.
etc/build.usage: clarify the consequences of parallelising builds to guide the perplexed and to confuse the people of the tribe of certainty into enlightenment (or not?) subr/ex_pkg_dispatch.subr:exp_pkg_dispatch(): moved traps. subr/ex_pkg_exec.subr:ex_pkg_exec(): forcibly pkill(1) child processes on failure.
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh5
1 files changed, 4 insertions, 1 deletions
diff --git a/build.sh b/build.sh
index 479cdce3..8e1ac804 100755
--- a/build.sh
+++ b/build.sh
@@ -45,7 +45,10 @@ buildp_dispatch() {
else
ex_rtl_log_msg fail "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log:";
cat "${BUILD_WORKDIR}/${_pkg_name}_stderrout.log";
- ex_rtl_log_msg failexit "Build failed in \`${_pkg_name}'.";
+ ex_rtl_log_msg fail "Build failed in \`${_pkg_name}'.";
+ ex_rtl_log_msg fail "Terminating pending builds...";
+ pkill -P "${$}";
+ exit 1;
fi; ;;
disabled_pkg) ex_rtl_log_msg vnfo "Skipping disabled package \`${_pkg_name}.'"; ;;
skipped_pkg) ex_rtl_log_msg vnfo "Skipping finished package \`${_pkg_name}.'"; ;;