From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.kapsi.fi ([217.30.184.167]:34665 "EHLO mail.kapsi.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752397AbaIAG0a (ORCPT ); Mon, 1 Sep 2014 02:26:30 -0400 From: Mikko Rapeli Subject: [RFC PATCH v2 04/27] headers_install.sh: enhance error handling Date: Mon, 1 Sep 2014 09:25:55 +0300 Message-Id: <1409552778-2537-5-git-send-email-mikko.rapeli@iki.fi> In-Reply-To: <1409552778-2537-1-git-send-email-mikko.rapeli@iki.fi> References: <1408660449-4011-1-git-send-email-mikko.rapeli@iki.fi> <1409552778-2537-1-git-send-email-mikko.rapeli@iki.fi> Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: linux-kernel@vger.kernel.org Cc: linux-kbuild@vger.kernel.org, mikko.rapeli@iki.fi Exit with error if using undefined variables or if any sub command fails with error return value. unidef needs special handling since but this can be done without the trap. Enables exaniming intermediate files if some commands failed. Signed-off-by: Mikko Rapeli --- scripts/headers_install.sh | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh index 5de5660..5391762 100644 --- a/scripts/headers_install.sh +++ b/scripts/headers_install.sh @@ -1,4 +1,7 @@ #!/bin/sh +set -e +set -u +#set -x if [ $# -lt 1 ] then @@ -26,7 +29,6 @@ shift # Iterate through files listed on command line FILE= -trap 'rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed"' EXIT for i in "$@" do FILE="$(basename "$i")" @@ -37,10 +39,13 @@ do -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \ -e 's/(^|[ \t(])(inline|asm|volatile)([ \t(]|$)/\1__\2__\3/g' \ -e 's@#(ifndef|define|endif[ \t]*/[*])[ \t]*_UAPI@#\1 @' \ - "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || exit 1 + "$SRCDIR/$i" > "$OUTDIR/$FILE.sed" || \ + ( rm -f "$OUTDIR/$FILE.sed" ; exit 1 ) scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__ "$OUTDIR/$FILE.sed" \ - > "$OUTDIR/$FILE" - [ $? -gt 1 ] && exit 1 + > "$OUTDIR/$FILE" || \ + ( if [ $? -gt 1 ]; then \ + rm -f "$OUTDIR/$FILE" "$OUTDIR/$FILE.sed" ; \ + exit 1 ; \ + fi ) rm -f "$OUTDIR/$FILE.sed" done -trap - EXIT -- 2.1.0