diff options
author | Jim Meyering <meyering@redhat.com> | 2012-01-06 17:51:52 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2012-01-06 17:51:52 +0100 |
commit | ce0e4459c40fceb367d9383f2c078ac8a2a0ea60 (patch) | |
tree | 721c4431d15ee0c9103ade959778195dc5c91490 /scripts | |
parent | 59cb41ecd759e54d559083f14d02d2140a4b2f46 (diff) | |
download | coreutils-ce0e4459c40fceb367d9383f2c078ac8a2a0ea60.tar.xz |
scripts: allow one-line summary to start with "[Vv]ersion \d"
* scripts/git-hooks/commit-msg: Do not reject the commit log
message generated by our automated release-and-tag process.
(bad_first_line): New function, extracted from...
(check_msg): ... here. Use it.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/git-hooks/commit-msg | 35 |
1 files changed, 24 insertions, 11 deletions
diff --git a/scripts/git-hooks/commit-msg b/scripts/git-hooks/commit-msg index 46382ae1d..e1bb3820e 100755 --- a/scripts/git-hooks/commit-msg +++ b/scripts/git-hooks/commit-msg @@ -52,6 +52,27 @@ sub re_edit($) and die "$ME: $log_file: the editor ($editor) failed, aborting\n"; } +sub bad_first_line($) +{ + my ($line) = @_; + + $line =~ /^[Vv]ersion \d/ + and return ''; + + $line =~ /:/ + or return 'missing colon on first line of log message'; + + # The token(s) before the colon on the first line must be on our list + # Tokens may be space- or comma-separated. + (my $pre_colon = $line) =~ s/:.*//; + my @word = split (/[ ,]/, $pre_colon); + my @bad = grep !/$valid_regex/, @word; + @bad + and return 'invalid first word(s) of summary line: ' . join (', ', @bad); + + return ''; +} + # Given a $LOG_FILE name and a \@LINE buffer, # read the contents of the file into the buffer and analyze it. # If the log message passes muster, return the empty string. @@ -82,17 +103,9 @@ sub check_msg($$) @line == 0 and return 'no log message'; - # The first line must have a colon or must give a version number. - $line[0] =~ /(?::|^[Vv]ersion [0-9])/ - or return 'missing colon on first line of log message'; - - # The token(s) before the colon on the first line must be on our list - # Tokens may be space- or comma-separated. - (my $pre_colon = $line[0]) =~ s/:.*//; - my @word = split (/[ ,]/, $pre_colon); - my @bad = grep !/$valid_regex/, @word; - @bad - and return 'invalid first word(s) of summary line: ' . join (', ', @bad); + my $bad = bad_first_line $line[0]; + $bad + and return $bad; # Second line should be blank or not present. 2 <= @line && length $line[1] |