소스 검색

generate_defs: Should run with set -e

Bryan Drewery 2 년 전
부모
커밋
665fd952f7
2개의 변경된 파일17개의 추가작업 그리고 9개의 파일을 삭제
  1. 9 4
      src/generate_defs.sh
  2. 8 5
      src/generate_symbol.sh

+ 9 - 4
src/generate_defs.sh

@@ -1,4 +1,5 @@
 #! /bin/sh
+set -e
 
 ### Export LC_ALL=C so sort(1) stays consistent
 export LC_ALL=C
@@ -57,7 +58,7 @@ for file in ${files}; do
   $SED -n -e 's/.*\(DLSYM_GLOBAL[^ (]*\)(.*, \([^)]*\).*/\2 \1/p' $TMPFILE | \
     sort -u | while read symbol dlsym; do
     # Check if the typedef is already defined ...
-    typedef=$(grep "^typedef .*(\*${symbol}_t)" ${dirname}/${basename}.h)
+    typedef=$(grep "^typedef .*(\*${symbol}_t)" ${dirname}/${basename}.h) || :
     # ... if not, generate it
     if [ -z "$typedef" ]; then
       if ! grep -v "DLSYM" "${TMPFILE}" | grep -qw "${symbol}"; then
@@ -78,7 +79,7 @@ for file in ${files}; do
 		 -e 's/  */ /g' \
 		 -e 's/ \([,)]\)/\1/g' \
 		 -e 's/ *()/(void)/g' \
-	 )
+	 ) || :
       existing_typedef=0
     else
       existing_typedef=1
@@ -86,12 +87,16 @@ for file in ${files}; do
 
     if [ "${typedef%;}" = "${typedef}" ]; then
       echo "Error: Unable to generate typedef for: ${symbol}" >&2
-      test -n "$typedef" && echo "$typedef" >&2
+      if [ -n "${typedef}" ]; then
+	      echo "$typedef" >&2
+      fi
       continue
     fi
 
     #pipe typedef into generate_symbol.sh
-    [ -z "$typedef" ] && continue
+    if [ -z "${typedef}" ]; then
+	    continue
+    fi
     if [ "${dlsym}" = "DLSYM_GLOBAL_FWDCOMPAT" ]; then
       echo "_${symbol};" >> $exportsFile
     fi

+ 8 - 5
src/generate_symbol.sh

@@ -1,4 +1,5 @@
 #! /bin/sh
+set -e
 
 defsFile_wrappers="$1"
 defsFile_pre="$2"
@@ -9,11 +10,13 @@ defsFile_post="$3"
 while read symbol existing_typedef typedef; do
   echo "#define ${symbol} ORIGINAL_SYMBOL_${symbol}" >> $defsFile_pre
   echo "#undef ${symbol}" >> $defsFile_post
-  test $existing_typedef -eq 0 && echo "$typedef" >> $defsFile_post
+  if [ "${existing_typedef}" -eq 0 ]; then
+	  echo "$typedef" >> $defsFile_post
+  fi
 
-  returntype=$(echo "$typedef" | sed -e 's/typedef \([^(]*\) (\*\([^ ]*\)_t)(\(.*\));/\1/')
-  name=$(echo "$typedef" | sed -e 's/typedef \([^(]*\) (\*\([^ ]*\)_t)(\(.*\));/\2/')
-  params=$(echo "$typedef" | sed -e 's/typedef \([^(]*\) (\*\([^ ]*\)_t)(\(.*\));/\3/')
+  returntype=$(echo "$typedef" | sed -e 's/typedef \([^(]*\) (\*\([^ ]*\)_t)(\(.*\));/\1/') || :
+  name=$(echo "$typedef" | sed -e 's/typedef \([^(]*\) (\*\([^ ]*\)_t)(\(.*\));/\2/') || :
+  params=$(echo "$typedef" | sed -e 's/typedef \([^(]*\) (\*\([^ ]*\)_t)(\(.*\));/\3/') ||:
 
   SAVE_IFS=$IFS
   IFS=,
@@ -24,7 +27,7 @@ while read symbol existing_typedef typedef; do
   # Set params to $1,$2, etc
   set $params
   paramCount=$#
-  lastParam=$(expr $paramCount - 1)
+  lastParam=$((paramCount - 1))
   i=0
 
   while [ $i -lt $paramCount ]; do