#!/bin/bash . libremessages mydir="$(dirname "$0")" PATH="$mydir:$PATH" check-yaml() { file=$1 msg 'Inspecting %q' "$file" norm=$(mktemp --tmpdir) trap "rm -f -- $(printf '%q' "$norm")" RETURN meta-normalize-stdio < "$file" > "$norm" || return $? colordiff -u "$file" "$norm" || return $? } main() { declare -i ret=0 yamldir="$(ruby -e "load '$mydir/common.rb'; print cfg['yamldir']")" # Check the user YAML files for file in "$yamldir"/*.yml; do check-yaml "$file" || ret=$? done msg 'Checking for duplicate usernames' dups=($(sed -n 's/^username: //p' -- "$yamldir"/*.yml| sort | uniq -d)) if (( ${#dups[@]} )); then error 'Duplicate usernames:' plain '%s' "${dups[@]}" ret=1 fi msg 'Checking PGP keys' if pgp-list-keyids | grep -Ev '^(trusted|secondary|revoked)/[a-z][a-z0-9-]* [0-9A-F]{40}$'; then error 'Bad pgp keys ^^^' ret=1 fi return $ret } main "$@"