Browse Source

Merge pull request #2941 from mcornella/fix-pass-completion

Update pass completion and fix syntax and autoloading
Robby Russell 10 years ago
parent
commit
6caed46356
1 changed files with 26 additions and 7 deletions
  1. 26 7
      plugins/pass/_pass

+ 26 - 7
plugins/pass/_pass

@@ -1,13 +1,16 @@
 #compdef pass
 #autoload
 
-# Copyright (C) 2012:
+# Copyright (C) 2012 - 2014:
 #    Johan Venant <jvenant@invicem.pro>
 #    Brian Mattern <rephorm@rephorm.com>
 #    Jason A. Donenfeld <Jason@zx2c4.com>.
-#    Santiago Borrazás <sanbor@gmail.com>
 # 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 () {
@@ -23,8 +26,8 @@ _pass () {
 		case "${cmd}" in
 			init)
 				_arguments : \
-					"-r[re-encrypt existing passwords]" \
-					"--reencrypt[re-encrypt existing passwords]"
+					"-p[gpg-id will only be applied to this subfolder]" \
+					"--path[gpg-id will only be applied to this subfolder]"
 				_pass_complete_keys
 				;;
 			ls|list|edit)
@@ -43,9 +46,19 @@ _pass () {
 					"-n[don't include symbols in password]" \
 					"--no-symbols[don't include symbols in password]" \
 					"-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
 				;;
+			cp|copy|mv|rename)
+				_arguments : \
+					"-f[force rename]" \
+					"--force[force rename]"
+					_pass_complete_entries_with_subdirs
+				;;
 			rm)
 				_arguments : \
 					"-f[force deletion]" \
@@ -75,10 +88,14 @@ _pass () {
 		subcommands=(
 			"init:Initialize new password storage"
 			"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"
 			"insert:Insert a new password"
 			"generate:Generate a new password using pwgen"
 			"edit:Edit a password with \$EDITOR"
+			"mv:Rename the password"
+			"cp:Copy the password"
 			"rm:Remove the password"
 			"git:Call git on the password store"
 			"version:Output version information"
@@ -101,7 +118,7 @@ _pass_cmd_show () {
 _pass_complete_entries_helper () {
 	local IFS=$'\n'
 	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 () {
@@ -117,3 +134,5 @@ _pass_complete_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')
 }
+
+_pass