File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+
3+ set -euo pipefail
4+
5+ #
6+ # Finds modules matching given string and prints out their recent top committers.
7+ #
8+ # Usage:
9+ # module_devs <module name, partial ok>
10+ #
11+
12+ find_beat_dirs () {
13+ find $beats_base_dir -type d -iname \* beat -maxdepth 2 | grep -v libbeat
14+ }
15+
16+ find_module_dirs () {
17+ beat_dirs=" $1 "
18+ module_name=" $2 "
19+
20+ module_dirs=" "
21+ for beat_dir in $beat_dirs ; do
22+ if [ -d " $beat_dir /module" ]; then
23+ module_dirs=$module_dirs " " $( find $beat_dir /module -type d -depth 1)
24+ fi
25+ done
26+
27+ found_dirs=" "
28+ for module_dir in $module_dirs ; do
29+ module=$( echo $module_dir | awk -F\/ ' { print $NF}' )
30+ if [[ " $module " == * " $module_name " * ]]; then
31+ found_dirs=$found_dirs " " $module_dir
32+ fi
33+ done
34+
35+ echo " $found_dirs "
36+ }
37+
38+ print_recent_top_committers () {
39+ module_dirs=" $1 "
40+ for module_dir in $module_dirs ; do
41+ echo " Found matching $module_dir :"
42+ cd $module_dir
43+ echo " Recent top committers:"
44+ git log --since=" one year ago" --pretty=format:" %an" -- . | sort | uniq -c | sort -nr | head -3 | awk ' {$1 = ""; print " -"$0}'
45+ done
46+ }
47+
48+ module_name=" $1 "
49+ if [ -z " $module_name " ]; then
50+ echo " Usage: module_devs <module name>"
51+ exit 1
52+ fi
53+
54+ beats_base_dir=$( cd $( dirname $BASH_SOURCE ) /..; pwd)
55+
56+ beat_dirs=$( find_beat_dirs)
57+ module_dirs=$( find_module_dirs " $beat_dirs " " $module_name " )
58+ print_recent_top_committers " $module_dirs "
You can’t perform that action at this time.
0 commit comments