aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rwxr-xr-xsrc/password-store.sh15
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