1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00

Do not reject https://gnu.org in commit messages

* build-aux/git-hooks/commit-msg: Do not reject commit messages
containing http: or ftp: URLs to gnu.org or fsf.org.  Instead,
rewrite the messages to use https: URLs.
This commit is contained in:
Paul Eggert 2017-10-16 15:54:06 -07:00
parent fb4200a875
commit a0b7b301dd

View File

@ -44,7 +44,7 @@ if test "$at_sign" != @; then
fi
# Check the log entry.
exec $awk -v at_sign="$at_sign" -v cent_sign="$cent_sign" '
exec $awk -v at_sign="$at_sign" -v cent_sign="$cent_sign" -v file="$1" '
BEGIN {
# These regular expressions assume traditional Unix unibyte behavior.
# They are needed for old or broken versions of awk, e.g.,
@ -70,6 +70,8 @@ exec $awk -v at_sign="$at_sign" -v cent_sign="$cent_sign" '
unsafe_gnu_url = "(http|ftp)://([" c_lower ".]*\\.)?(gnu|fsf)\\.org"
}
{ input[NR] = $0 }
/^#/ {
# Ignore every line after a scissors line.
if (/^# *---* *(>[8%]|[8%]<) *---* *$/) { exit }
@ -127,12 +129,8 @@ exec $awk -v at_sign="$at_sign" -v cent_sign="$cent_sign" '
status = 1
}
{
if (match($0, unsafe_gnu_url)) {
url = substr($0, RSTART, RLENGTH)
printf "Use https: URL instead of '\''%s'\'' in commit message\n", url
status = 1
}
$0 ~ unsafe_gnu_url {
needs_rewriting = 1
}
$0 ~ non_print {
@ -145,6 +143,21 @@ exec $awk -v at_sign="$at_sign" -v cent_sign="$cent_sign" '
print "Empty commit message"
status = 1
}
if (status == 0 && needs_rewriting) {
for (i = 1; i <= NR; i++) {
line = input[i]
while (match(line, unsafe_gnu_url)) {
prefix = substr(line, 1, RSTART - 1)
suffix = substr(line, RSTART)
line = prefix "https:" substr(suffix, 5 + (suffix ~ /^http:/))
}
print line >file
}
if (close(file) != 0) {
print "Cannot rewrite: " file
status = 1
}
}
if (status != 0) {
print "Commit aborted; please see the file 'CONTRIBUTE'"
}