diff options
Diffstat (limited to 'tools/prepare-commit-msg')
-rwxr-xr-x | tools/prepare-commit-msg | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/tools/prepare-commit-msg b/tools/prepare-commit-msg index e103888a..d2f927c0 100755 --- a/tools/prepare-commit-msg +++ b/tools/prepare-commit-msg @@ -5,11 +5,17 @@ # Add [ci skip] to the commit message unless there are changes to files # that are relevant for testing such as src/*, test/*, ledger3.texi, ... -function add_ci_skip() +add_ci_skip () { pattern="$1"; shift + source="$1" + + # Don't add [ci skip] if it's already in the commit message source + grep '\[ci skip\]' "$source" >/dev/null 2>&1 + [ $? -eq 0 ] && return + if [ $(git diff --cached --name-only | grep --count "$pattern") -eq 0 ]; then - tempfile=$(mktemp $0.XXXXXX) + tempfile=$(mktemp "${0}.XXXXXX") cat - "$1" <<EOF > "$tempfile" # It seems the changes to be committed are irrelevant for the continuous @@ -19,9 +25,14 @@ function add_ci_skip() # comment or remove the next line. [ci skip] EOF - mv "$tempfile" "$1" + mv "$tempfile" "$source" fi } ## MAIN -add_ci_skip '\(^src\|^test\|^doc/ledger3.texi\|^\.travis.yml\|CMakeLists.txt\)' "$@" +file="$1" +source="$2" + +# Skip merge commits +[ "$source" = "merge" ] && exit 0 +add_ci_skip '\(^src\|^test\|^doc/ledger3.texi\|^\.travis.yml\|CMakeLists.txt\)' "$file" |