[elastic] increase limit of points in graphs
[scripts.git] / get_contributors.sh
1 #!/bin/bash
2
3 # Script to generate a list of contributors
4 # Included: All repos from https://leap.se/git/?o=age that show activity since 2y
5 # Excluded: puppet_*
6
7 REPOS=(bitmask_android bitmask_bundler bitmask_client bitmask-dev bitmask_help bitmask_launcher bitmask_net bitmask_thunderbird bonafide couchdb_scripts couchrest_changes deploy_test dl_bitmask_net docker faith keymanager leap_assets leap_ca leap_cli leap_client_launcher leap_cloudadmin leap_db leap_doc leap-keyring leap_mail leap_mx leap_pistonadmin leap_platform leap_presentations leap_pycommon leap_se leap_vagrant leap_web leap_website libsodium lut mail_breaker nickserver packer_vagrant platform_test pymemoryhole pysqlcipher python_gnupg-ng python_pycryptopp python_srp python_zmq reserve_usernames ruby_srp scripts soledad soledad-perf sqlcipher srp_js tapicero version_report )
8
9 # shellcheck disable=SC2016
10 GET_CONTRIBUTORS='git log --branches --not --remotes=subrepo --use-mailmap --format="%aN <%aE>" | awk "{arr[\$0]++} END{for (i in arr){print arr[i], i;}}" | sort -rn | cut -d" " -f2- | sort'
11 ROOTDIR="${HOME}/leap/git"
12
13 # optional specify core team memebers to filter out
14 TEAM='(email@of.contributor.org|email@of_other_contributor.net)'
15
16 declare -A contributors
17
18 for repo in "${REPOS[@]}"
19 do
20   cd "${ROOTDIR}/${repo}" || exit 1
21   # Uncomment for first run to make sure all repos are up to date
22   # git fetch
23   contributors_repo=$(eval "$GET_CONTRIBUTORS" | egrep --text -iv "$TEAM")
24   if [ -n "$contributors_repo" ]
25   then
26     echo "${repo}:"
27     while read -r line; do
28       echo "$line"
29       contributors["$line"]+="$repo, "
30     done <<< "$contributors_repo"
31     echo
32     echo
33   fi
34 done
35
36 echo
37 echo
38
39 for contributor in "${!contributors[@]}"; do echo "$contributor: ${contributors[$contributor]}"; done | sort