[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] emacs-26 a0b7b30: Do not reject https://gnu.org in commit
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] emacs-26 a0b7b30: Do not reject https://gnu.org in commit messages |
Date: |
Mon, 16 Oct 2017 18:55:01 -0400 (EDT) |
branch: emacs-26
commit a0b7b301dd32ea02b00a3ffb477c8a6074071f74
Author: Paul Eggert <address@hidden>
Commit: Paul Eggert <address@hidden>
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.
---
build-aux/git-hooks/commit-msg | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/build-aux/git-hooks/commit-msg b/build-aux/git-hooks/commit-msg
index e21aaf0..e1ff281 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'"
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] emacs-26 a0b7b30: Do not reject https://gnu.org in commit messages,
Paul Eggert <=