Switch to astyle for the C, C++ & Java indentation 82/6082/5
Sylvestre Ledru [Fri, 27 Jan 2012 14:17:37 +0000 (15:17 +0100)]
Change-Id: I1435140105a2e0520847e568a21554c3463fb9c6

git_hooks/pre-commit

index 73bac24..13d1891 100755 (executable)
@@ -46,31 +46,31 @@ else
        XMLINDENT_IGNORED="$(find $(git config --get-all xmlindent.ignored))"
 fi
 
-INDENT="$(git config --get hooks.indent)"
+INDENT="$(git config --get hooks.astyle)"
 if test ! -x "$INDENT"
 then
-       echo "Unable to find indent executable on the configuration."
+       echo "Unable to find astyle executable on the configuration."
        echo
        echo "Please configure it with :"
-       echo "  git config --global hooks.indent C:/path/to/indent"
+       echo "  git config --global hooks.astyle C:/path/to/astyle"
        echo " or "
-       echo "  git config --global hooks.indent /usr/bin/indent"
+       echo "  git config --global hooks.astyle /usr/bin/astyle"
        echo
 fi
 
-if test -z "$(git config --get-all indent.ignored)"
+if test -z "$(git config --get-all astyle.ignored)"
 then
-       echo "Unable to find indent ignored list on the configuration, ignored"
+       echo "Unable to find astyle ignored list on the configuration, ignored"
        echo
        echo "You can configure it with :"
-       echo "  git config --add indent.ignored 'scilab/modules/*/src/jni/*.hxx' "
-       echo "  git config --add indent.ignored 'scilab/modules/*/src/jni/*.cpp' "
-       echo "  git config --add indent.ignored 'scilab/modules/*/src/jni/*.c' "
+       echo "  git config --add astyle.ignored 'scilab/modules/*/src/jni/*.hxx' "
+       echo "  git config --add astyle.ignored 'scilab/modules/*/src/jni/*.cpp' "
+       echo "  git config --add astyle.ignored 'scilab/modules/*/src/jni/*.c' "
        echo
        
-       INDENT_IGNORED=""
+       ASTYLE_IGNORED=""
 else
-       INDENT_IGNORED="$(find $(git config --get-all indent.ignored))"
+       ASTYLE_IGNORED="$(find $(git config --get-all astyle.ignored))"
 fi
 
 # indent / format file by type
@@ -96,9 +96,13 @@ indent() {
                .h|.c|.hxx|.cpp)
                        __indent_C;
                ;;
+               .java)
+                       __indent_java;
+               ;;
                esac
        done
 }
+
 # Indent the file with xmlindent if this is an xcos file
 __indent_Xml() {
 
@@ -126,10 +130,11 @@ __indent_Xml() {
        "$XMLINDENT" -i 2 -o "$file" "$file"
        git add "$file"
 }
-# Indent the file with `indent' if this is a C/CPP file
-__indent_C() {
 
-       if test ! -x "$INDENT"
+# Pre process before the indent
+__pre_indent() {
+
+       if test ! -x "$ASTYLE"
        then
                return;
        fi
@@ -139,21 +144,40 @@ __indent_C() {
        fi
 
        # ignored globs
-       if test -n "$INDENT_IGNORED"
+       if test -n "$ASTYLE_IGNORED"
        then
-               echo $INDENT_IGNORED |grep -q "$file"
+               echo $ASTYLE_IGNORED |grep -q "$file"
                if test $? -eq 0
                then
                        echo "Indenting" $file  ": ignored"
                        return
                fi
        fi
-        
 
        echo "Indenting" $file
-       "$INDENT" -npro --braces-after-if-line -i4 -ts4 -sob -ss -ncs -sc --no-space-after-parentheses -cp1 --no-tabs -bap -bad -npcs --dont-break-function-decl-args --dont-break-procedure-type -bli0 -l150 -il0 "$file"
+
+}
+
+# post process after the indent
+__post_indent() {
        git add "$file"
 }
 
-indent
+COMMON_ASTYLE_ARGS="--pad-header -n --pad-oper --indent-col1-comments --indent-switches"
 
+# Indent the file with `astyle' if this is a C/CPP file
+__indent_C() {
+       __pre_indent
+       astyle $COMMON_ASTYLE_ARGS --style=linux --indent=spaces=4 -A1 "$file"
+       __post_indent
+}
+
+# Indent the file with `astyle' if this is a Java file
+__indent_java() {
+       __pre_indent
+       astyle $COMMON_ASTYLE_ARGS --style=java --indent=tab "$file"
+       __post_indent
+
+}
+
+indent