]> gitweb.fluxo.info Git - git-hooks.git/commitdiff
Add a pre-commit hook that checks bash files for syntax errors
authorBenjamin C Meyer <ben@meyerhome.net>
Wed, 17 Mar 2010 01:25:05 +0000 (21:25 -0400)
committerBenjamin C Meyer <ben@meyerhome.net>
Wed, 17 Mar 2010 05:56:22 +0000 (01:56 -0400)
Signed-off-by: Benjamin C Meyer <ben@meyerhome.net>
contrib/pre-commit/bash_syntax [new file with mode: 0755]

diff --git a/contrib/pre-commit/bash_syntax b/contrib/pre-commit/bash_syntax
new file mode 100755 (executable)
index 0000000..7e014e8
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+function test_file {
+    file="${1}"
+    head -n 1 "${file}" | grep 'bash' | grep '^#!/' > /dev/null
+    if [ "$?" -eq 0 ] ; then
+        set -e
+        bash -n "${file}"
+        set +e
+    fi
+}
+
+case "${1}" in
+    --about )
+        echo "Check bash shell scripts for syntax errors."
+        ;;
+    * )
+        for file in `git diff-index --cached --name-only HEAD` ; do
+            test_file "${file}"
+        done
+        ;;
+esac