summaryrefslogtreecommitdiff
path: root/scripts/contributors.sh
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2015-05-27 16:10:08 +0200
committerDaniel Stenberg <daniel@haxx.se>2015-05-27 16:10:08 +0200
commit44fe4b90290e8eab671aa2cf3d8d04b0ac6fd3e8 (patch)
treea1cbe76edac309689a54f956342331b7a4505b32 /scripts/contributors.sh
parent9972666b47d92bc9d7502e91ea49f1838ce61ce6 (diff)
downloadcurl-44fe4b90290e8eab671aa2cf3d8d04b0ac6fd3e8.tar.gz
scripts: moved contributors.sh and contrithanks.sh into subdir
Diffstat (limited to 'scripts/contributors.sh')
-rwxr-xr-xscripts/contributors.sh88
1 files changed, 88 insertions, 0 deletions
diff --git a/scripts/contributors.sh b/scripts/contributors.sh
new file mode 100755
index 000000000..0840bfab0
--- /dev/null
+++ b/scripts/contributors.sh
@@ -0,0 +1,88 @@
+#!/bin/sh
+#***************************************************************************
+# _ _ ____ _
+# Project ___| | | | _ \| |
+# / __| | | | |_) | |
+# | (__| |_| | _ <| |___
+# \___|\___/|_| \_\_____|
+#
+# Copyright (C) 2013-2015, 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> [--releasenotes]"
+ exit
+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);
+ }
+
+'