Move the unsetting of the errtrace and ERR trap flags to after the
image has been built. This lets us capture errors during module
installation to the build root and the call to depmod. Either of these
steps failing could be hazardous and should prompt a failure.

Signed-off-by: Dave Reisner <dreis...@archlinux.org>
---
 mkinitcpio |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/mkinitcpio b/mkinitcpio
index 677f608..a865770 100755
--- a/mkinitcpio
+++ b/mkinitcpio
@@ -335,9 +335,8 @@ for var in cfg_{MODULES,BINARIES,FILES}; do
 done
 parse_hook
 
-# unset errtrace and trap
-set +E
-trap ERR
+# reset the trap to catch all errors
+trap '(( ++builderrors ))' ERR
 
 if (( ${#ADDED_MODULES[*]} )); then
     mkdir -p "${MODPATHS[@]%/*}"
@@ -358,6 +357,10 @@ else
     warning "No modules were added to the image. This is probably not what you 
want."
 fi
 
+# unset errtrace and trap
+set +E
+trap ERR
+
 declare -i status=0
 declare -a pipesave
 if [[ "${GENIMG}" ]]; then
-- 
1.7.9.1

Reply via email to