Update author listing script with support for several years

Did this months ago but never got to actually committing it...
This commit is contained in:
Rémi Verschelde
2019-07-02 14:09:22 +02:00
parent e277a56085
commit c88ef2c22f
2 changed files with 15 additions and 10 deletions

2
.gitignore vendored
View File

@@ -1,2 +1,4 @@
.doctrees
*.mo
authors.txt
langs.txt

View File

@@ -1,9 +1,6 @@
#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
if [ -z "$1" ]; then
if [ -z $1 ]; then
echo "Pass a commit hash as argument to list authors between that commit and HEAD."
exit 1
fi
@@ -13,16 +10,22 @@ commit=$1
rm -f authors.txt langs.txt
for file in weblate/*.po; do
authors=$(git log "$commit"..HEAD --date=format:"%Y" --format="%aN <%aE>, %ad." "$file" | grep -v 'anonymous' | sort -u)
if [ -n "$authors" ]; then
authors=$(git log $commit..HEAD --date=format:"%Y" --format="%aN <%aE>, %ad." $file | grep -v 'anonymous' | sort -u)
if [ ! -z "$authors" ]; then
new_authors=""
while read -r author; do
found=$(grep "$author" "$file")
if [ -z "$found" ]; then
new_authors+=$author$'\n'
author_name=$(echo "$author" | sed 's/20[0-9][0-9].//')
author_year=$(echo "$author" | sed 's/.*\(20[0-9][0-9]\).*/\1/')
found_name=$(grep "$author_name" $file)
found_year=
if [ ! -z "$found_name" ]; then
found_year=$(grep "$author_year" <<< "$found_name")
fi
if [ -z "$found_name" -o -z "$found_year" ]; then
new_authors+=$author$'\n'
fi
done <<< "$authors"
if [ -z "$new_authors" ]; then
if [ ! -z "$new_authors" ]; then
echo "$file" >> langs.txt
echo -e "\n* $file:\n" >> authors.txt
echo "$new_authors" >> authors.txt