12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- #!/bin/sh
- ######################################################################
- # Pre-commit hook for verifying that generated library modules match
- # their EXPECTED content. Library modules are generated from fragments
- # under the 'roles/lib_(openshift|utils)/src/' directories.
- #
- # If the attempted commit modified files under the
- # 'roles/lib_(openshift|utils)/' directories this script will run the
- # 'generate.py --verify' command.
- #
- # This script will NOT RUN if module source fragments are modified but
- # not part of the commit. I.e., you can still make commits if you
- # modified module fragments AND other files but are not comitting the
- # the module fragments.
- # Did the commit modify any source module files?
- CHANGES=`git diff-index --stat --cached HEAD | grep -E '^ roles/lib_(openshift|utils)/src/(class|doc|ansible|lib)/'`
- RET_CODE=$?
- ABORT=0
- if [ "${RET_CODE}" -eq "0" ]; then
- # Modifications detected. Run the verification scripts.
- # Which was it?
- if $(echo $CHANGES | grep -q 'roles/lib_openshift/'); then
- echo "Validating lib_openshift..."
- ./roles/lib_openshift/src/generate.py --verify
- if [ "${?}" -ne "0" ]; then
- ABORT=1
- fi
- fi
- if $(echo $CHANGES | grep -q 'roles/lib_utils/'); then
- echo "Validating lib_utils..."
- ./roles/lib_utils/src/generate.py --verify
- if [ "${?}" -ne "0" ]; then
- ABORT=1
- fi
- fi
- if [ "${ABORT}" -eq "1" ]; then
- cat <<EOF
- ERROR: Module verification failed. Generated files do not match fragments.
- Choices to continue:
- 1) Run './roles/lib_(openshift|utils)/src/generate.py' from the root of
- the repo to regenerate the files
- 2) Skip verification with '--no-verify' option to 'git commit'
- EOF
- fi
- fi
- exit $ABORT
|