mirror of
https://github.com/phpbb/phpbb.git
synced 2025-01-17 22:28:46 +01:00
937305bc41
PHPBB3-16675
67 lines
1.8 KiB
Bash
Executable File
67 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# This file is part of the phpBB Forum Software package.
|
|
#
|
|
# @copyright (c) phpBB Limited <https://www.phpbb.com>
|
|
# @license GNU General Public License, version 2 (GPL-2.0)
|
|
#
|
|
# For full copyright and license information, please see
|
|
# the docs/CREDITS.txt file.
|
|
#
|
|
# Calls the git commit-msg hook on all non-merge commits in a given commit range.
|
|
#
|
|
|
|
if [ "$#" -ne 1 ];
|
|
then
|
|
echo "Expected one argument (commit range, e.g. phpbb/develop..ticket/12345)."
|
|
exit
|
|
fi
|
|
|
|
DIR=$(dirname "$0")
|
|
COMMIT_RANGE="$1"
|
|
COMMIT_MSG_HOOK_PATH="$DIR/hooks/commit-msg"
|
|
COMMIT_MSG_HOOK_FATAL=$(git config --bool phpbb.hooks.commit-msg.fatal 2> /dev/null)
|
|
git config phpbb.hooks.commit-msg.fatal true
|
|
|
|
EXIT_STATUS=0
|
|
|
|
COMMIT_HASHES=$(git rev-list --no-merges "$COMMIT_RANGE")
|
|
|
|
# If any message have been returned instead of commit hashes list
|
|
# send a non-zero exit status upstream.
|
|
if ! [[ "$COMMIT_HASHES" =~ ^[0-9a-f]{5,40} ]]
|
|
then
|
|
EXIT_STATUS=1
|
|
fi
|
|
|
|
for COMMIT_HASH in $COMMIT_HASHES
|
|
do
|
|
echo "Inspecting commit message of commit $COMMIT_HASH"
|
|
|
|
# The git commit-msg hook takes a path to a file containing a commit
|
|
# message. So we have to extract the commit message into a file first,
|
|
# which then also needs to be deleted after our work is done.
|
|
COMMIT_MESSAGE_PATH="$DIR/commit_msg.$COMMIT_HASH"
|
|
git log -n 1 --pretty=format:%B "$COMMIT_HASH" > "$COMMIT_MESSAGE_PATH"
|
|
|
|
# Invoke hook on commit message file.
|
|
"$COMMIT_MSG_HOOK_PATH" "$COMMIT_MESSAGE_PATH"
|
|
|
|
# If any commit message hook complains with a non-zero exit status, we
|
|
# will send a non-zero exit status upstream.
|
|
if [ $? -ne 0 ]
|
|
then
|
|
EXIT_STATUS=1
|
|
fi
|
|
|
|
rm "$COMMIT_MESSAGE_PATH"
|
|
done
|
|
|
|
# Restore phpbb.hooks.commit-msg.fatal config
|
|
if [ -n "$COMMIT_MSG_HOOK_FATAL" ]
|
|
then
|
|
git config phpbb.hooks.commit-msg.fatal "$COMMIT_MSG_HOOK_FATAL"
|
|
fi
|
|
|
|
exit $EXIT_STATUS
|