#!/bin/bash IFS=' ' GIT_DIR=$(git rev-parse --git-dir) if [ -z "$GIT_DIR" ]; then echo "run me from a git path" exit 1 fi BASEDIR="$GIT_DIR/.." pushd "$BASEDIR" > /dev/null GIT_DIR=$(git rev-parse --git-dir) BASEDIR="$GIT_DIR/.." DATE=`date` OUTFILE="$BASEDIR/win32/compat/w32_errno_defs.c" INFILE="$BASEDIR/win32/compat/referrno.txt" if [ ! -f "$INFILE" ]; then echo "reference file missing" exit 1 fi cat > "$OUTFILE" < static const struct errno_struct { int err; const char *strerr; } w32_errnos[] = { EOH maxerr=0 for pippo in `cat "$INFILE"`; do symbol=`echo $pippo | cut -d'|' -f1` value=`echo $pippo | cut -d'|' -f2` value=$((value+1000)) [ $value -gt $maxerr ] && maxerr=$value descr=`echo $pippo | cut -d'|' -f3` git grep $symbol | egrep -v '(referrno|w32_errno_defs)' > /dev/null used=$? [ $used -ne 0 ] && echo "#ifdef __ERRNO_INCLUDE_UNUSED" >> "$OUTFILE" echo -e "#ifndef $symbol\n#define $symbol $value\n#endif\n{ $symbol, \"$descr\" }," >> "$OUTFILE" [ $used -ne 0 ] && echo "#endif /* __ERRNO_INCLUDE_UNUSED */" >> "$OUTFILE" done maxerr=$((maxerr+1)) echo -e "#ifndef EBOGUSWSOCK\n#define EBOGUSWSOCK $maxerr\n#endif\n{ EBOGUSWSOCK, \"WinSock error\"}\n};" >> "$OUTFILE" popd >/dev/null