diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2017-10-16 15:54:06 -0700 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2017-10-16 15:54:55 -0700 |
commit | a0b7b301dd32ea02b00a3ffb477c8a6074071f74 (patch) | |
tree | 7a378a32cf353f33f550eba1b9a1244b2f8cccd9 /build-aux | |
parent | fb4200a87555c2e69cc66eea1ae9a55e8be3bbf3 (diff) | |
download | emacs-a0b7b301dd32ea02b00a3ffb477c8a6074071f74.tar.gz |
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.
Diffstat (limited to 'build-aux')
-rwxr-xr-x | build-aux/git-hooks/commit-msg | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg index e21aaf074c6..e1ff281de71 100755 --- a/build-aux/git-hooks/commit-msg +++ b/build-aux/git-hooks/commit-msg @@ -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'" } |