mirror of https://github.com/qTox/qTox.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.1 KiB
61 lines
2.1 KiB
#!/bin/bash |
|
|
|
# Copyright © 2016 Zetok Zalbavar <zetok@openmailbox.org> |
|
# Copyright © 2019 by The qTox Project Contributors |
|
# |
|
# This file is part of qTox, a Qt-based graphical interface for Tox. |
|
# qTox is libre software: you can redistribute it and/or modify |
|
# it under the terms of the GNU General Public License as published by |
|
# the Free Software Foundation, either version 3 of the License, or |
|
# (at your option) any later version. |
|
# |
|
# qTox is distributed in the hope that it will be useful, |
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
# GNU General Public License for more details. |
|
# |
|
# You should have received a copy of the GNU General Public License |
|
# along with qTox. If not, see <http://www.gnu.org/licenses/> |
|
|
|
# Script for verifying conformance to commit message format of commits in |
|
# commit range supplied. |
|
# |
|
# Script fails (non-zero exit status) if commit messages don't conform. |
|
|
|
# usage: |
|
# ./$script $commit_range |
|
# |
|
# $commit_range – in format `abdce..12345` |
|
|
|
|
|
# Fail as soon as an error appears |
|
set -eu -o pipefail |
|
|
|
ARG="$1" |
|
|
|
echo "" # ← formatting |
|
|
|
grep_for_invalid() { |
|
# differentiate what is allowed for commit messages and merge messages |
|
git log --no-merges --format=format:'%s' "$ARG" \ |
|
| grep -v -E '^(feat|fix|docs|style|refactor|perf|revert|test|chore)(\(.{,12}\))?:.{1,68}$' \ |
|
|| git log --merges --format=format:'%s' "$ARG" \ |
|
| grep -v -E '^Merge .{1,70}$' |
|
} |
|
|
|
# Conform, /OR ELSE/. |
|
if grep_for_invalid |
|
then |
|
echo "" |
|
echo "Above ↑ commits don't conform to commit message format:" |
|
echo "https://github.com/qTox/qTox/blob/master/CONTRIBUTING.md#commit-message-format" |
|
echo "" |
|
echo "Please fix." |
|
echo "" |
|
echo "If you're not sure how to rewrite history, here's a helpful tutorial:" |
|
echo "https://www.atlassian.com/git/tutorials/rewriting-history/git-commit--amend/" |
|
echo "" |
|
echo "If you're still not sure what to do, feel free to pop on IRC, or ask in PR comments for help :)" |
|
# fail the build |
|
exit 1 |
|
fi
|
|
|