mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
36bf141333
This is very handy when updating the RELEASE-NOTES as then we sometimes have names added manually in the existing list and we use this script to update the set.
88 lines
2.4 KiB
Bash
Executable File
88 lines
2.4 KiB
Bash
Executable File
#!/bin/sh
|
|
#***************************************************************************
|
|
# _ _ ____ _
|
|
# Project ___| | | | _ \| |
|
|
# / __| | | | |_) | |
|
|
# | (__| |_| | _ <| |___
|
|
# \___|\___/|_| \_\_____|
|
|
#
|
|
# Copyright (C) 2013-2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
#
|
|
# This software is licensed as described in the file COPYING, which
|
|
# you should have received as part of this distribution. The terms
|
|
# are also available at http://curl.haxx.se/docs/copyright.html.
|
|
#
|
|
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
# copies of the Software, and permit persons to whom the Software is
|
|
# furnished to do so, under the terms of the COPYING file.
|
|
#
|
|
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
# KIND, either express or implied.
|
|
#
|
|
###########################################################################
|
|
|
|
#
|
|
# This script shows all mentioned contributors from <hash> until HEAD. To aid
|
|
# when writing RELEASE-NOTES and THANKS.
|
|
#
|
|
# Use --releasenotes to also include the names from the existing RELEASE-NOTES
|
|
# file, which is handy when we've added names manually in there that should be
|
|
# included in an updated list.
|
|
#
|
|
|
|
start=$1
|
|
|
|
if test -z "$start"; then
|
|
echo "Usage: $0 <since this tag/hash>"
|
|
fi
|
|
|
|
# filter out Author:, Commit: and *by: lines
|
|
# cut off the email parts
|
|
# split list of names at comma
|
|
# split list of names at " and "
|
|
# cut off spaces first and last on the line
|
|
# filter alternatives through THANKS-filter
|
|
# only count names with a space (ie more than one word)
|
|
# sort all unique names
|
|
# awk them into RELEASE-NOTES format
|
|
(
|
|
git log $start..HEAD | \
|
|
egrep -i '(Author|Commit|by):' | \
|
|
cut -d: -f2- | \
|
|
cut '-d<' -f1 | \
|
|
tr , '\012' | \
|
|
sed 's/ and /\n/' | \
|
|
sed -e 's/^ //' -e 's/ $//g'
|
|
|
|
if echo "$*" | grep -qw -- '--releasenotes';then
|
|
# if --releasenotes was used
|
|
# grep out the list of names from RELEASE-NOTES
|
|
# split on ", "
|
|
# remove leading white spaces
|
|
grep "^ [^ ]" RELEASE-NOTES| \
|
|
sed 's/, */\n/g'| \
|
|
sed 's/^ *//'
|
|
fi
|
|
)| \
|
|
sed -f ./docs/THANKS-filter | \
|
|
grep ' ' | \
|
|
sort -fu | \
|
|
awk '{
|
|
num++;
|
|
n = sprintf("%s%s%s,", n, length(n)?" ":"", $0);
|
|
#print n;
|
|
if(length(n) > 78) {
|
|
printf(" %s\n", p);
|
|
n=sprintf("%s,", $0);
|
|
}
|
|
p=n;
|
|
|
|
}
|
|
|
|
END {
|
|
printf(" %s\n", p);
|
|
printf(" (%d contributors)\n", num);
|
|
}
|
|
|
|
'
|