summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xsrc/password-store.sh24
1 files changed, 14 insertions, 10 deletions
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