#/bin/env bash

KNOWN_FEATURES=$(cat MAINTAINERS | sed -ne 's/^I:[[:space:]]*//p')
FEATURES=$(git show -s --format=%s --no-color \
    | sed -ne 's/^\([a-z0-9_ -]*\):.*$/\1/p')
KNOWN_TYPES="feature fix refactor improvement style docs test make"
TYPE=$(git show -s --format=%b --no-color | sed -ne 's/^Type:[[:space:]]*//p')
ERR="=============================== ERROR ==============================="

# Chech that subject line contains at least one feature id
if [ $(echo ${FEATURES} | wc -w) -eq 0 ]; then
  echo $ERR
  echo "git commit 'Subject:' line must contain at least one known feature id."
  echo "feature id(s) must be listed before ':' and space delimited "
  echo "if more then one is listed."
  echo "Please refer to the MAINTAINERS file (I: lines) for known feature ids."
  echo $ERR
  exit 1
fi

# Check that feature ids in subject line are known
for i in ${FEATURES}; do
  is_known=false
  for j in ${KNOWN_FEATURES}; do
    [ "${i}" = "${j}" ] && is_known=true
  done
  if [ ${is_known} = "false" ] ; then
    echo $ERR
    echo "Unknown feature '${i}' in commit 'Subject:' line."
    echo "Feature must exist in MAINTAINERS file. If this commit introduces "
    echo "a new feature, then this commit must add an entry to the "
    echo "MAINTAINERS file."
    echo $ERR
    exit 1
  fi
done

# Check that Message body contains valid Type: entry
is_known=false
for i in ${KNOWN_TYPES}; do
  [ "${i}" = "${TYPE}" ] && is_known=true
done
if [ ${is_known} = "false" ] ; then
  echo $ERR
  echo "Unknown commit type '${TYPE}' in commit message body."
  echo "Commit message must contain known 'Type:' entry."
  echo "Known types are: ${KNOWN_TYPES}"
  echo $ERR
  exit 1
fi
echo "*******************************************************************"
echo "* VPP Commit Message Checkstyle Successfully Completed"
echo "*******************************************************************"
