From 14d60e27d770656a9fba1a4878897a83e7268e2e Mon Sep 17 00:00:00 2001 From: lxoliva Date: Mon, 9 Mar 2009 00:31:22 +0000 Subject: [PATCH] Detect error in $deblob by teeing the whole if/cmd into a temp file, and renaming it only in case of success. git-svn-id: http://www.fsfla.org/svn/fsfla/software/linux-libre/scripts@4758 559672b5-ba27-0410-b829-e8f1faed8b1b --- deblob-main | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/deblob-main b/deblob-main index fb9a0e4fb41..71840776c75 100755 --- a/deblob-main +++ b/deblob-main @@ -178,10 +178,15 @@ echo Copying linux-$kver to linux-$kver-$libre cp linux-$kver.tar linux-$kver-$libre.tar cp -lR linux-$kver/. linux-$kver-$libre +rm -f linux-$kver-$libre.log linux-$kver-$libre.log.tmp echo Deblobbing within linux-$kver-$libre, saving output to linux-$kver-$libre.log -if (cd linux-$kver-$libre && /bin/sh ../$deblob $force) 2>&1 | tee -a linux-$kver-$libre.log; then - : -else +# We can't just pipe deblob into tee, for then we fail to detect +# error conditions. Use file renaming to tell whether we succeeded. +if (cd linux-$kver-$libre && /bin/sh ../$deblob $force) 2>&1; then + mv linux-$kver-$libre.log.tmp linux-$kver-$libre.log +fi | tee linux-$kver-$libre.log.tmp +if test ! -f linux-$kver-$libre.log; then + mv linux-$kver-$libre.log.tmp linux-$kver-$libre.log echo $deblob failed, aborting >&2 exit 1 fi -- 2.31.1