forked from extern/ohmyzsh
Merge pull request #2941 from mcornella/fix-pass-completion
Update pass completion and fix syntax and autoloading
This commit is contained in:
commit
6caed46356
@ -1,13 +1,16 @@
|
|||||||
#compdef pass
|
#compdef pass
|
||||||
#autoload
|
#autoload
|
||||||
|
|
||||||
# Copyright (C) 2012:
|
# Copyright (C) 2012 - 2014:
|
||||||
# Johan Venant <jvenant@invicem.pro>
|
# Johan Venant <jvenant@invicem.pro>
|
||||||
# Brian Mattern <rephorm@rephorm.com>
|
# Brian Mattern <rephorm@rephorm.com>
|
||||||
# Jason A. Donenfeld <Jason@zx2c4.com>.
|
# Jason A. Donenfeld <Jason@zx2c4.com>.
|
||||||
# Santiago Borrazás <sanbor@gmail.com>
|
|
||||||
# All Rights Reserved.
|
# All Rights Reserved.
|
||||||
# This file is licensed under the GPLv2+. Please see COPYING for more information.
|
#
|
||||||
|
# This file is licensed under the GPLv2+.
|
||||||
|
# Please visit http://git.zx2c4.com/password-store/tree/COPYING for more information.
|
||||||
|
#
|
||||||
|
# Oh my zsh plugin maintainer: Santiago Borrazás <sanbor@gmail.com>
|
||||||
|
|
||||||
|
|
||||||
_pass () {
|
_pass () {
|
||||||
@ -23,8 +26,8 @@ _pass () {
|
|||||||
case "${cmd}" in
|
case "${cmd}" in
|
||||||
init)
|
init)
|
||||||
_arguments : \
|
_arguments : \
|
||||||
"-r[re-encrypt existing passwords]" \
|
"-p[gpg-id will only be applied to this subfolder]" \
|
||||||
"--reencrypt[re-encrypt existing passwords]"
|
"--path[gpg-id will only be applied to this subfolder]"
|
||||||
_pass_complete_keys
|
_pass_complete_keys
|
||||||
;;
|
;;
|
||||||
ls|list|edit)
|
ls|list|edit)
|
||||||
@ -43,9 +46,19 @@ _pass () {
|
|||||||
"-n[don't include symbols in password]" \
|
"-n[don't include symbols in password]" \
|
||||||
"--no-symbols[don't include symbols in password]" \
|
"--no-symbols[don't include symbols in password]" \
|
||||||
"-c[copy password to the clipboard]" \
|
"-c[copy password to the clipboard]" \
|
||||||
"--clip[copy password to the clipboard]"
|
"--clip[copy password to the clipboard]" \
|
||||||
|
"-f[force overwrite]" \
|
||||||
|
"--force[force overwrite]" \
|
||||||
|
"-i[replace first line]" \
|
||||||
|
"--in-place[replace first line]"
|
||||||
_pass_complete_entries_with_subdirs
|
_pass_complete_entries_with_subdirs
|
||||||
;;
|
;;
|
||||||
|
cp|copy|mv|rename)
|
||||||
|
_arguments : \
|
||||||
|
"-f[force rename]" \
|
||||||
|
"--force[force rename]"
|
||||||
|
_pass_complete_entries_with_subdirs
|
||||||
|
;;
|
||||||
rm)
|
rm)
|
||||||
_arguments : \
|
_arguments : \
|
||||||
"-f[force deletion]" \
|
"-f[force deletion]" \
|
||||||
@ -75,10 +88,14 @@ _pass () {
|
|||||||
subcommands=(
|
subcommands=(
|
||||||
"init:Initialize new password storage"
|
"init:Initialize new password storage"
|
||||||
"ls:List passwords"
|
"ls:List passwords"
|
||||||
|
"find:Find password files or directories based on pattern"
|
||||||
|
"grep:Search inside decrypted password files for matching pattern"
|
||||||
"show:Decrypt and print a password"
|
"show:Decrypt and print a password"
|
||||||
"insert:Insert a new password"
|
"insert:Insert a new password"
|
||||||
"generate:Generate a new password using pwgen"
|
"generate:Generate a new password using pwgen"
|
||||||
"edit:Edit a password with \$EDITOR"
|
"edit:Edit a password with \$EDITOR"
|
||||||
|
"mv:Rename the password"
|
||||||
|
"cp:Copy the password"
|
||||||
"rm:Remove the password"
|
"rm:Remove the password"
|
||||||
"git:Call git on the password store"
|
"git:Call git on the password store"
|
||||||
"version:Output version information"
|
"version:Output version information"
|
||||||
@ -101,7 +118,7 @@ _pass_cmd_show () {
|
|||||||
_pass_complete_entries_helper () {
|
_pass_complete_entries_helper () {
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
|
local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
|
||||||
_values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort)
|
_values -C 'passwords' ${$(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print 2>/dev/null | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort):-""}
|
||||||
}
|
}
|
||||||
|
|
||||||
_pass_complete_entries_with_subdirs () {
|
_pass_complete_entries_with_subdirs () {
|
||||||
@ -117,3 +134,5 @@ _pass_complete_keys () {
|
|||||||
# Extract names and email addresses from gpg --list-keys
|
# Extract names and email addresses from gpg --list-keys
|
||||||
_values 'gpg keys' $(gpg2 --list-secret-keys --with-colons | cut -d : -f 10 | sort -u | sed '/^$/d')
|
_values 'gpg keys' $(gpg2 --list-secret-keys --with-colons | cut -d : -f 10 | sort -u | sed '/^$/d')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_pass
|
||||||
|
Loading…
Reference in New Issue
Block a user