#!/bin/sh

for execname in gnuindent gindent indent; do
  version=`$execname --version 2>/dev/null`
  if test "x$version" != "x"; then
    INDENT=$execname
    break
  fi
done

if test -z $INDENT; then
  echo "GStreamer git pre-commit hook:"
  echo "Did not find GNU indent, please install it before continuing."
  exit 1
fi

case `$INDENT --version` in
  GNU*)
      ;;
  default)
      echo "Did not find GNU indent, please install it before continuing."
      echo "(Found $INDENT, but it doesn't seem to be GNU indent)"
      exit 1
      ;;
esac

# Run twice. GNU indent isn't idempotent
# when run once
for i in 1 2; do
$INDENT \
  --braces-on-if-line \
  --case-brace-indentation0 \
  --case-indentation2 \
  --braces-after-struct-decl-line \
  --line-length80 \
  --no-tabs \
  --cuddle-else \
  --dont-line-up-parentheses \
  --continuation-indentation4 \
  --honour-newlines \
  --tab-size8 \
  --indent-level2 \
  --leave-preprocessor-space \
  $* || exit $?
done
