1
0
Fork 0
mirror of https://github.com/ohmyzsh/ohmyzsh.git synced 2024-11-30 09:40:09 +00:00
Commit graph

5 commits

Author SHA1 Message Date
Marc Cornellà
142a6c7fd5 Fix pass zsh completion and autoloading
When autocompleting from `pass <TAB>', sometimes the following errors
appear:

  _values:compvalues:10: not enough arguments
  find: `/home/user/.password-store': No such file or directory
  _values:compvalues:10: not enough arguments
  find: `/home/user/.password-store': No such file or directory

The `_values' error happens when there is no password-store folder *or*
there are no passwords in pass; the `find' error only when there is no
password-store folder.

We can trace it back to line 108, which contains the only `_values'
statement that is executed when we autocomplete from pass. We confirm
this by following the trail of execution, which is

  _pass -> _pass_cmd_show -> _pass_complete_entries ->
        -> _pass_complete_entries_helper

If we try running the command inside `$()' on line 104, we see that it
returns nothing and the output is blank. This means that `_values' only
receives 1 of its 2 mandatory parameters, therefore the above error is
triggered (not enough arguments).

That is unless we don't have a password-store folder, in which case the
`find: [...] no such file or directory' error is *also* triggered.

We solve the first error by supplying a default value of "" if the
command outputs nothing, using the zsh construct ${var:-else}.

We solve the second error by redirecting the find command's stderr output
to /dev/null, so the error is effectively suppressed.

* * * *

This patch also fixes the first tab completion, which currently only
loads the completion function definition.

We do this by adding a `_pass' statement at the end of the file, which
runs the `_pass' completion function after loading its definition.
This is the standard way an autoloaded function works; for other examples
look at zsh's official completion files.
2014-08-29 00:39:33 +02:00
Marc Cornellà
17dd5792b4 Update pass completion to upstream
Conflicts:
	plugins/pass/_pass
2014-08-29 00:39:33 +02:00
Santiago Borrazás
25a3244353 Added a link to the file's license and added the commiter as plugin maintaner. 2014-08-29 00:39:33 +02:00
christianschmidt
ec779d5f73 Update _pass to follow symlinks for completion
Based on: http://comments.gmane.org/gmane.comp.encryption.pass/235
2013-11-23 15:32:22 +01:00
Santiago Borrazás
15563c1b78 Added pass plugin in order to provide completion.
More info about pass tool: http://zx2c4.com/projects/password-store/
2012-11-01 21:41:07 -03:00