#!/bin/sh
#
# get-authors
-# Copyright (c) 2009-2019 The CVC4 Project
+# Copyright (c) 2009-2021 The cvc5 Project
#
# usage: get-authors [ files... ]
#
while [ $# -gt 0 ]; do
f=$1
shift
- if ! grep -q " \*\* Top contributors" "$f"
+ if ! grep -q " Top contributors" "$f"
then
header_lines=0
else
- header_lines=$(grep "\*\*\/" "$f" -m 1 -n | cut -d ':' -f 1)
- if [ -z $header_lines ]; then header_lines=0; fi
+ header_lines=$(grep "^ \*\/" "$f" -m 1 -n | cut -d ':' -f 1)
+ if [ -z $header_lines ]; then
+ header_lines=$(grep "^##$" "$f" -m 3 -n | tail -n 1 | cut -d ':' -f 1)
+ [ -z "$header_lines" ] && header_lines=0;
+ fi
fi
((header_lines++))
total_lines=$(wc -l "$f" | awk '{print$1}')
# (1) #include
# (2) namespace
# (3) } ... namespace ...
+ # (4) empty lines
#
awk -F ')' \
- '$2 !~ /^[ \t]*(#include|namespace|}.*namespace.*)/ {print $1}' | \
+ '$2 !~ /^[ \t]*(#include|namespace|}.*namespace.*|[ \t]*$)/ {print $1}' | \
# Keep author names only, remove the last 4 columns in ( ... )
- awk 'NF{NF-=4};1' | \
- # Determine top three contributors
- sort | uniq -c | sort -rn | head -n3 | \
+ awk 'NF{NF-=4};1' | \
# Fix author names
sed "s,Not Committed Yet <not.committed.yet>,$gituser," | \
sed 's/makaimann/Makai Mann/' | \
sed 's/Martin Brain/Martin/' | \
sed 's/Martin/Martin Brain/' | \
+ sed 's/nafur/Gereon Kremer/' | \
sed 's/justinxu421/Justin Xu/' | \
sed 's/yoni206/Yoni Zohar/' | \
+ sed 's/ayveejay/Andrew V. Jones/' | \
+ sed 's/FabianWolff/Fabian Wolff/' | \
+ sed 's/mudathirmahgoub/Mudathir Mohamed/' | \
+ sed 's/mcjuneho/Michael Chang/' | \
+
+ # Determine top three contributors
+ sort | uniq -c | sort -rn | head -n3 | \
# Remove first columns from uniq -c (number of lines)
awk '{$1=""; print}' | \