#!/bin/bash
# TODO: update to the split YAML files

######################################################################

. libremessages

file=$cfg_hackers
ret=0

norm=$(mktemp --tmpdir)
trap "rm -f -- $(printf '%q' "$norm")" EXIT
"$(dirname "$0")/meta-normalize-stdio" < "$file" > "$norm" || exit 1

usernames=($(<"$norm" sed -n 's/^[ -] username: //p' | sort))

dups=($(printf '%s\n' "${usernames[@]}" | uniq -d))
if (( ${#dups[@]} )); then
	error 'Duplicate usernames:'
	plain '%s' "${dups[@]}"
	ret=1
fi

illegal=($(printf '%s\n' "${usernames[@]}" | grep -v '^[a-z][a-z0-9]*$'))
if (( ${#illegal[@]} )); then
	error 'Illegal usernames:'
	plain '%s' "${illegal[@]}"
	ret=1
fi

if "$(dirname "$0")/list-pgp-keyids" | grep -Ev '^(trusted|secondary|revoked)/[a-z][a-z0-9]* [0-9A-F]{40}$'; then
	error 'Bad pgp keys ^^^'
	ret=1
fi

colordiff -u "$file" "$norm" || ret=$?

exit $ret