summaryrefslogtreecommitdiffstats
path: root/scripts/explode-keyring
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/explode-keyring')
-rwxr-xr-xscripts/explode-keyring38
1 files changed, 38 insertions, 0 deletions
diff --git a/scripts/explode-keyring b/scripts/explode-keyring
new file mode 100755
index 0000000..d6362ac
--- /dev/null
+++ b/scripts/explode-keyring
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# Copyright (c) 2008 Jonathan McDowell <noodles@earth.li>
+# GNU GPL; v2 or later
+# Converts a keyring into individual keys.
+# Taken from jetring-explode, Copyright 2007 Joey Hess <joeyh@debian.org>
+
+set -e
+
+if [ -z "$1" ] || [ -z "$2" ]; then
+ echo "Usage: explode-keyring keyring dir" >&2
+ exit 1
+fi
+
+# avoid gnupg touching ~/.gnupg
+GNUPGHOME=$(mktemp -d -t jetring.XXXXXXXX)
+export GNUPGHOME
+trap cleanup exit
+cleanup () {
+ rm -rf "$GNUPGHOME"
+}
+
+keyring=$(readlink -f "$1") # gpg works better with absolute keyring paths
+changesetdir="$2"
+
+basename=$(basename "$keyring")
+date=`date -R`
+
+mkdir -p "$changesetdir"
+
+for key in $(gpg --no-auto-check-trustdb --options /dev/null --no-default-keyring --keyring "$keyring" --list-keys --keyid-format long | grep '^pub' | sed -e 's!.*/!!' -e 's/ .*//'); do
+ out="$changesetdir/0x$key"
+ echo "$out"
+ gpg --no-auto-check-trustdb --options /dev/null \
+ --no-default-keyring --keyring "$keyring" \
+ --export-options no-export-attributes \
+ --export "$key" > "$out"
+done