diff options
author | Erich Eckner <git@eckner.net> | 2019-09-02 15:29:21 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2019-09-02 15:29:21 +0200 |
commit | ee71f24356a80643ffd16586f0778cb4b79f446b (patch) | |
tree | 5f08eed5bfde15348d7704b41d247248001fa5b4 | |
parent | 794c2f417b0671d6f16e8e47f4ac3d41db42be2c (diff) | |
download | devops-ee71f24356a80643ffd16586f0778cb4b79f446b.tar.xz |
scrub-for-gpg-keys new
-rwxr-xr-x | scrub-for-gpg-keys | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/scrub-for-gpg-keys b/scrub-for-gpg-keys new file mode 100755 index 0000000..2e760c7 --- /dev/null +++ b/scrub-for-gpg-keys @@ -0,0 +1,52 @@ +#!/bin/bash + +tmp_dir=$(mktemp -d) +trap 'rm -rf --one-file-system "${tmp_dir}"' EXIT +mkfifo "${tmp_dir}/key-fifo" + +if [ "x$1" = 'x-l' ]; then + sudo su http -s /bin/bash -c 'gpg --import' \ + < "${tmp_dir}/key-fifo" & +elif [ $# -ne 0 ]; then + >&2 echo 'only valid parameter is "-l"' + exit 1 +else + ssh archlinux32 "sudo su http -s /bin/bash -c 'gpg --import'" \ + < "${tmp_dir}/key-fifo" & +fi + +{ + find \ + /usr/src/archlinux/{packages,community}/ \ + /usr/src/archlinux32/packages/ \ + ~/eigeneSkripte/archPackages/ \ + -type f -name PKGBUILD \ + -exec sed -n ' + /^\s*validpgpkeys=.*)/p + /^\s*validpgpkeys=[^)]\+$/,/)/p + ' {} + 2>/dev/null \ + | sed ' + s/#.*$// + s/^\s*validpgpkeys=(// + s/).*$// + ' \ + | tr -d '" \t'"'" + curl -Ss 'https://archlinux32.org/key-wishlist' +} \ +| sort -u \ +| grep -x '[0-9a-fA-F]\{16,40\}' \ +| while read -r key_id; do + key=$(gpg -a --export "${key_id}" 2>/dev/null) + if [ -z "${key}" ]; then + /usr/src/skripte/gpg-safe-import/gpg-safe-import --recv-keys "${key_id}" + key=$(gpg -a --export "${key_id}" 2>/dev/null) + fi + if [ -z "${key}" ]; then + >&2 printf 'wish-list key "%s" is unknown\n' "${key_id}" + continue + fi + printf '%s\n' "${key}" +done \ +> "${tmp_dir}/key-fifo" + +rm "${tmp_dir}/key-fifo" |