Fix pre-commit bug regarding astyle detection. If not installed, all commited files...
[anna.git] / scr / git / pre-commit.sh
index 5d1a980..01e85e9 100755 (executable)
@@ -48,10 +48,9 @@ then
 fi
 
 # Astyle
-version=`astyle --version 2> /dev/null`
-if test "x$version" != "x"; then
-echo "SDF3 git pre-receive hook:"
-echo "Did not find astyle, please install it before continuing."
+which astyle >/dev/null 2>/dev/null
+if [ $? -ne 0 ]; then
+echo "pre-commit hook: 'astyle' not found, install it before continuing or remove .fix_style to skip astyle processing."
 exit 1
 fi
 ASTYLE=astyle
@@ -60,8 +59,7 @@ case `$ASTYLE --version 2> /dev/null` in
   Artistic*)
       ;;
   default)
-      echo "SDF3 git pre-commit hook:"
-      echo "Did not find astyle, please install it before continuing."
+      echo "pre-commit hook: unsupported astyle version, must be 'Artistic Style Version x.xx'. Install or skip (remove .fix_style)."
       exit 1
       ;;
 esac
@@ -90,13 +88,18 @@ test_style () {
   file=$1
   newfile=${file}.astyled
   #$ASTYLE ${ASTYLE_PARAMETERS} < $file > $newfile 2>>/dev/null
-  $ASTYLE -a -f -p -o -O -c -s2 -U -x --mode=c < $file > $newfile 2>>/dev/null
+  echo "Executing $ASTYLE -a -f -p -o -O -c -s2 -U --mode=c < $file > $newfile"
+  $ASTYLE -a -f -p -o -O -c -s2 -U --mode=c < $file > $newfile
+  if [ $? -ne 0 ] ; then
+    echo "Error in astyle"
+    exit 1
+  fi
   diff "${file}" "${newfile}"
-  r=$?
-  if [ $r != 0 ] ; then
+  if [ $? -ne 0 ] ; then
     echo "Code style error in '$file', please fix before commiting."
     if [ -f "./.fix_style" ]; then
       echo "Auto-fixing code style..."
+      cp $file ${file}.orig
       mv $newfile $file
     else
       echo "To autofix, create a hidden file named './.fix_style' on suite root."