Cygwin: Have cygmagic not create output if an error occurs
Improve the 'cygmagic' script, so it doesn't create the output file if an error occurs, even in one of the backtick-enclosed pipelines it runs.
This commit is contained in:
parent
47e698cc04
commit
7fa8405d3f
|
@ -1,4 +1,4 @@
|
|||
#!/bin/sh
|
||||
#!/bin/bash
|
||||
# cygmagic - Generate "magic numbers" from a structure.
|
||||
#
|
||||
# This file is part of Cygwin.
|
||||
|
@ -7,14 +7,22 @@
|
|||
# Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
# details.
|
||||
|
||||
set -e
|
||||
shopt -s -o pipefail
|
||||
shopt -s inherit_errexit
|
||||
|
||||
file_magic=$1; shift
|
||||
gcc=$1; shift
|
||||
file=$1; shift
|
||||
|
||||
tmpfile=/tmp/$$.magic
|
||||
trap "rm -f /tmp/$$.magic" 0 1 2 15
|
||||
cat <<EOF > $file_magic
|
||||
|
||||
cat <<EOF > $tmpfile
|
||||
/* autogenerated - do not edit */
|
||||
#include "$file"
|
||||
EOF
|
||||
|
||||
sumit() {
|
||||
cksum $*
|
||||
}
|
||||
|
@ -28,5 +36,8 @@ while [ -n "$1" ]; do
|
|||
[ "$curr" != "$sum" ] && echo "*** WARNING WARNING WARNING WARNING WARNING ***
|
||||
*** $file: magic number for $define changed old $curr != new $sum
|
||||
*** WARNING WARNING WARNING WARNING WARNING ***" 1>&2
|
||||
done >> $file_magic
|
||||
done >> $tmpfile
|
||||
|
||||
mv $tmpfile $file_magic
|
||||
|
||||
exit 0
|
||||
|
|
Loading…
Reference in New Issue