diff options
-rwxr-xr-x | src/password-store.sh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/password-store.sh b/src/password-store.sh index bf76708..ab8036c 100755 --- a/src/password-store.sh +++ b/src/password-store.sh @@ -610,6 +610,20 @@ cmd_copy_move() { fi } +cmd_import_keys() { + local keyserver=( ) + local opts + opts="$($GETOPT -o k: -l keyserver: -n "$PROGRAM" -- "$@")" + local err=$? + eval set -- "$opts" + while true; do case $1 in + -k|--keyserver) keyserver=( "--keyserver" "$2" ); shift 2 ;; + --) shift; break ;; + esac done + + $GPG "${keyserver[@]}" --recv-keys $(find "$PREFIX" -name .gpg-id -exec grep -E --color=never -h "^(0x)?[0-9A-Fa-f]{8,}$" {} +) +} + cmd_git() { if [[ $1 == "init" ]]; then git "$@" || exit 1 @@ -642,6 +656,7 @@ case "$1" in delete|rm|remove) shift; cmd_delete "$@" ;; rename|mv) shift; cmd_copy_move "move" "$@" ;; copy|cp) shift; cmd_copy_move "copy" "$@" ;; + import-keys) shift; cmd_import_keys "$@" ;; git) shift; cmd_git "$@" ;; *) COMMAND="show"; cmd_show "$@" ;; esac |