From b28849617fb61e87a40a0e06ed94e0cd3c87bb5e Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 20 Dec 2016 20:58:24 +0100 Subject: extensions: make opt-in --- src/password-store.sh | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/password-store.sh b/src/password-store.sh index 1c61370..52cc941 100755 --- a/src/password-store.sh +++ b/src/password-store.sh @@ -13,7 +13,7 @@ which gpg2 &>/dev/null && GPG="gpg2" [[ -n $GPG_AGENT_INFO || $GPG == "gpg2" ]] && GPG_OPTS+=( "--batch" "--use-agent" ) PREFIX="${PASSWORD_STORE_DIR:-$HOME/.password-store}" -EXTENSIONS="${PASSWORD_STORE_EXTENSION_DIR:-$PREFIX/.extensions}" +EXTENSIONS="${PASSWORD_STORE_EXTENSIONS_DIR:-$PREFIX/.extensions}" X_SELECTION="${PASSWORD_STORE_X_SELECTION:-clipboard}" CLIP_TIME="${PASSWORD_STORE_CLIP_TIME:-45}" GENERATED_LENGTH="${PASSWORD_STORE_GENERATED_LENGTH:-25}" @@ -597,18 +597,22 @@ cmd_git() { fi } -cmd_extension() { - local extension="$EXTENSIONS/$1.bash" - check_sneaky_paths "$extension" - if [[ -f $extension && -x $extension ]]; then - verify_file "$extension" - shift - source "$extension" "$@" - else +cmd_extension_or_show() { + if ! cmd_extension "$@"; then COMMAND="show" cmd_show "$@" fi } +cmd_extension() { + [[ $PASSWORD_STORE_ENABLE_EXTENSIONS == true ]] || return 1 + local extension="$EXTENSIONS/$1.bash" + check_sneaky_paths "$extension" + [[ -f $extension && -x $extension ]] || return 1 + verify_file "$extension" + shift + source "$extension" "$@" + return 0 +} # # END subcommand functions @@ -631,6 +635,6 @@ case "$1" in rename|mv) shift; cmd_copy_move "move" "$@" ;; copy|cp) shift; cmd_copy_move "copy" "$@" ;; git) shift; cmd_git "$@" ;; - *) cmd_extension "$@" ;; + *) cmd_extension_or_show "$@" ;; esac exit 0 -- cgit v1.2.3