#!/bin/sh
# This file is in the public domain.

set -eu

if ! git --version >/dev/null; then
  echo "git not installed"
  exit 1
fi

if [ -d .git ]; then
  # Make sure that "git pull" et al. also update
  # submodules to avoid accidental rollbacks.
  git config --local submodule.recurse true

  # Beware: We only want to update submodules to the commit hash
  # stored in git, otherwise builds based on tags will not be
  # reproducible.
  echo "$0: Updating submodules"
  echo | git submodule update --init --force
fi

# This is more portable than `which' but comes with
# the caveat of not(?) properly working on busybox's ash:
existence()
{
    command -v "$1" >/dev/null 2>&1
}

set -x

if existence uncrustify; then
    echo "Installing uncrustify hook and configuration"
    # Install uncrustify format symlink (if possible)
    ln -s contrib/uncrustify.cfg uncrustify.cfg 2> /dev/null || true
    # Install pre-commit hook (if possible)
    ln -s ../../contrib/uncrustify_precommit .git/hooks/pre-commit 2> /dev/null || true
else
    echo "Uncrustify not detected, hook not installed. Please install uncrustify if you plan on doing development"
fi
