From a129362daeaafb0288e4d75f816973a46a7c9d16 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Fri, 19 Dec 2014 23:18:02 -0500 Subject: bin/meta-check: update --- bin/meta-check | 71 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 37 insertions(+), 34 deletions(-) (limited to 'bin') diff --git a/bin/meta-check b/bin/meta-check index 3eeb4c1..eb4f8c7 100755 --- a/bin/meta-check +++ b/bin/meta-check @@ -1,38 +1,41 @@ #!/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 +PATH="$(dirname "$0"):$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 + + # Check the user YAML files + for file in users/*.yml; do + check-yaml "$file" || ret=$? + done + + # Make sure there are no duplicate usernames + dups=($(sed -n 's/^username: //p' -- users/*.yml| sort | uniq -d)) + if (( ${#dups[@]} )); then + error 'Duplicate usernames:' + plain '%s' "${dups[@]}" + ret=1 + fi + + # Check to make sure the pgp keys are OK + 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 "$@" -- cgit v1.2.2