forked from OSGeo/homebrew-osgeo4mac
-
Notifications
You must be signed in to change notification settings - Fork 0
/
commit-msg.sh
32 lines (24 loc) · 825 Bytes
/
commit-msg.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/usr/bin/env bash
if [[ ! -a .ciignore ]]; then
exit # If .ciignore doesn't exists, just quit this Git hook
fi
# Load in every file that will be changed via this commit into an array
changes=( `git diff --name-only --cached` )
# Load the patterns we want to skip into an array
mapfile -t blacklist < .ciignore
for i in "${blacklist[@]}"
do
# Remove the current pattern from the list of changes
changes=( ${changes[@]/$i/} )
if [[ ${#changes[@]} -eq 0 ]]; then
# If we've exhausted the list of changes before we've finished going
# through patterns, that's okay, just quit the loop
break
fi
done
if [[ ${#changes[@]} -gt 0 ]]; then
# If there's still changes left, then we have stuff to build, leave the commit alone.
exit
fi
# Prefix the commit message with "[skip ci]"
sed -i '1s/^/[skip ci] /' "$1"