mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-18 13:38:12 +00:00
32 lines
904 B
Bash
32 lines
904 B
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
fail=0
|
||
|
|
||
|
# list all commits between HEAD and master
|
||
|
for commit in $(git rev-list origin/master..)
|
||
|
do
|
||
|
message=$(git log -n1 --format=%B $commit)
|
||
|
echo "Checking $commit"
|
||
|
|
||
|
# The commit message must contain either
|
||
|
# 1. "cherry-picked from [some commit in master]"
|
||
|
if [[ $message =~ "(cherry picked from commit" ]]; then
|
||
|
# remove last ")" and extract commit hash
|
||
|
master_commit=$(echo ${message:0:-1} | tr ' ' '\n' | tail -1)
|
||
|
# check if master really contains this commit hash
|
||
|
if [[ $(git branch -a --contains $master_commit | grep --only-matching master) == "master" ]]; then
|
||
|
continue
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# 2. [NO MASTER] substring
|
||
|
if [[ $message =~ "[NO MASTER]" ]]; then
|
||
|
continue
|
||
|
fi
|
||
|
|
||
|
fail=1
|
||
|
echo "FAILURE! Neither 'cherry picked from..' nor '[NO MASTER]' substring found in this commit message."
|
||
|
done
|
||
|
|
||
|
exit $fail
|