summaryrefslogtreecommitdiffstats
path: root/t/dm-vs-dd.t
diff options
context:
space:
mode:
Diffstat (limited to 't/dm-vs-dd.t')
-rwxr-xr-xt/dm-vs-dd.t47
1 files changed, 47 insertions, 0 deletions
diff --git a/t/dm-vs-dd.t b/t/dm-vs-dd.t
new file mode 100755
index 0000000..6b1a99c
--- /dev/null
+++ b/t/dm-vs-dd.t
@@ -0,0 +1,47 @@
+#!/bin/sh
+# Compares the DM keyring with the DD keyring. If the same name or email is
+# in both keyrings, that's an error.
+set -e
+
+list_uids () {
+ gpg --no-options --no-auto-check-trustdb --no-default-keyring \
+ --keyring "$1" --list-keys | grep -a '^uid' | sed 's/^uid *//' |
+ egrep -a -v '\[jpeg image of size .*\]'
+}
+
+list_names () {
+ sed 's/ <.*>//'
+}
+
+list_emails () {
+ sed 's/.* <\(.*\)>/\1/'
+}
+
+fail=0
+
+dd_uids=$(list_uids ./output/keyrings/debian-keyring.gpg)
+(
+ echo "$dd_uids" | list_emails
+ echo "$dd_uids" | list_names
+ echo "$dd_uids"
+) | sort | uniq > dd-list.tmp
+
+IFS="
+"
+for uid in $(list_uids ./output/keyrings/debian-maintainers.gpg | sort | uniq); do
+ name=$(echo "$uid" | list_names)
+ email=$(echo "$uid" | list_emails)
+ if grep -a -q "^$uid$" dd-list.tmp; then
+ echo "$uid is in both the DD and DM keyrings"
+ fail=1
+ elif grep -a "^$name$" dd-list.tmp; then
+ echo "warning: name $name is in both the DD and DM keyrings"
+ elif grep -a "^$email$" dd-list.tmp; then
+ echo "email $email is in both the DD and DM keyrings"
+ fail=1
+ fi
+done
+
+rm -f dd-list.tmp
+
+exit $fail