From: lxoliva Date: Mon, 9 Mar 2009 00:31:22 +0000 (+0000) Subject: Detect error in $deblob by teeing the whole if/cmd into a temp file, X-Git-Url: https://jxself.org/git/?a=commitdiff_plain;h=14d60e27d770656a9fba1a4878897a83e7268e2e;p=releases.git 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 --- 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