Raw
1 #!/bin/sh
2 # Feed whats-cooking or revision range to find who are involved
3
4 usage () {
5 echo >&2 "usage: $0 <whats-cooking.txt"
6 echo >&2 " or: $0 whats-cooking.txt"
7 echo >&2 " or: $0 master..seen"
8 exit 1
9 }
10
11 mode=
12 if test $# = 0
13 then
14 mode=stdin
15 elif test -r "$1"
16 then
17 mode=file
18 else
19 mode=revs
20 fi
21
22 if test "$mode" = revs
23 then
24 git shortlog -e -s --no-merges ^master "$@"
25 else
26 if test "$mode" = stdin
27 then
28 echo >&2 "reading what's cooking report from stdin..."
29 cat
30 else
31 cat "$1"
32 fi |
33 sed -ne 's|\(.* \)*\* \([a-z][a-z]/[^ ]*\) ([-0-9]*) [0-9]* commit.*|\2|p' |
34 xargs git shortlog -e -s --no-merges ^master
35 fi |
36 sed -e 's/^[ 0-9]*[ ]*//' -e 's/$/,/' |
37 sort -u |
38 sed -e '$s/,$//' -e 's/^\([^<]*\.[^<]*[^ ]\) </"\1" </' -e 's/^/ /'