#!/bin/sh usage() { cat << EOF Usage: $0 [-d ] [ .. ] EOF } depth="1" while getopts "hd:" OPTION do case $OPTION in h) usage exit ;; d) depth="$OPTARG" ;; *) usage >&2 exit 1 ;; esac done shift $(($OPTIND - 1)) if [ "$#" -eq 0 ]; then usage >&2 exit 1 fi keys="$*" gpg --recv-keys $keys while [ "$depth" -gt 0 ]; do keys=$(gpg --with-colons --fast-list-mode --list-sigs $keys | awk -F ':' '$1 ~ /sig|rev/ {print $5}' | sort -u) gpg --recv-keys $keys depth=$((depth - 1)) done