summaryrefslogtreecommitdiff
path: root/bin/meta-check
diff options
context:
space:
mode:
Diffstat (limited to 'bin/meta-check')
-rwxr-xr-xbin/meta-check38
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/meta-check b/bin/meta-check
new file mode 100755
index 0000000..3eeb4c1
--- /dev/null
+++ b/bin/meta-check
@@ -0,0 +1,38 @@
+#!/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