aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2014-04-20 23:23:08 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2014-04-20 23:23:08 +0200
commit852e3836e181288baaff9563a31d46b661e2b31a (patch)
treeeda0d6f057c376cfbc3bf0c88f1e3401a4c8eb2c
parentDon't use subshells for reading from find. (diff)
downloadpassword-store-852e3836e181288baaff9563a31d46b661e2b31a.tar.xz
password-store-852e3836e181288baaff9563a31d46b661e2b31a.zip
import-keys: initial workimport-keys
-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