Add script to list all LEAP contributors
[scripts.git] / get_contributors.sh
1 #!/bin/bash
2
3 # Script to generate a list of contributors
4
5 REPOS=(bitmask_android bitmask_client bitmask-dev bonafide couchdb_scripts couchrest_changes deploy_test dl_bitmask_net docker faith Infrastructure junit keymanager leap_assets leap_ca leap_cli leap_client_dist leap_client_launcher leap_cloudadmin leap_db leap_mail leap_mx leap_pistonadmin leap_platform leap_platform_gource leap_presentations leap_pycommon leap_se leap_vagrant leap_web leap_website lut mail_breaker minimal-debian-vagrant nickserver platform_test pysqlcipher reserve_usernames ruby_srp scripts soledad tapicero )
6
7 # shellcheck disable=SC2016
8 GET_CONTRIBUTORS='git log --use-mailmap --format="%aN <%aE>" | awk "{arr[\$0]++} END{for (i in arr){print arr[i], i;}}" | sort -rn | cut -d" " -f2- | sort'
9 ROOTDIR="${HOME}/leap/git"
10 LISTFILE='/tmp/contributors.txt'
11
12 # optional specify core team memebers to filter out
13 TEAM='(email@of.contributor.org|email@of_other_contributor.net)'
14
15 [ -e ${LISTFILE} ] && rm ${LISTFILE}
16 [ -e ${LISTFILE}.tmp ] && rm ${LISTFILE}.tmp
17
18 for repo in "${REPOS[@]}"
19 do
20   cd "${ROOTDIR}/${repo}" || exit 1
21   contributors=$(eval "$GET_CONTRIBUTORS" | egrep -iv "$TEAM")
22   if [ -n "$contributors" ]
23   then
24     echo "${repo}:"
25     echo "$contributors" | tee -a ${LISTFILE}.tmp
26     echo
27     echo
28   fi
29 done
30
31
32 sort < "${LISTFILE}.tmp" | uniq  > "${LISTFILE}"
33 rm "${LISTFILE}.tmp"
34 echo "Complete list of contributors is at ${LISTFILE}"