badge-axiom-team/generate-all-badges-from-member-list.sh
2023-03-10 22:27:48 +01:00

41 lines
941 B
Bash
Executable file

#!/bin/bash
set -e
spreadsheet="$1"
normalize_name () {
echo $* | sed -e 's/[^ -]\+/\L\u&/g' -e 's/ De / de /g'
}
viewjpeg="$(ls /usr/share/ghostscript/*/lib/viewjpeg.ps | tail -1)"
convert_jpeg_to_pdf () {
declare -a jpeg_stanza
while [ $# -gt 1 ]; do
jpeg_stanza+=( "($1) viewJPEG showpage" )
shift
done
gs \
-dNOSAFER \
-sDEVICE=pdfwrite \
-o "$1" \
-g1051x678 \
$viewjpeg \
-c "${jpeg_stanza[*]}"
}
mkdir -p badges
while read line; do
eval member=( $line )
if [ "${member[0]}" = "Clef AXIOM" ]; then
break
fi
number="${member[0]}"
lastname="$(normalize_name "${member[1]}")"
firstname="$(normalize_name "${member[2]}")"
nickname="${member[3]}"
key="${member[4]}"
./create-badge.sh "$number" "$lastname $firstname" "$nickname" "$key"
convert_jpeg_to_pdf recto-out.jpeg verso-out.jpeg badges/"${number//\//_}.pdf"
done < <(xlsx2csv -q all -d ' ' "$spreadsheet" | tail +3)