[pass] [PATCH] Allow custom subcommands
Thorsten Wißmann
edu at thorsten-wissmann.de
Fri Oct 7 11:18:08 CEST 2016
Hi Lucas,
On Fri, Oct 07, 2016 at 10:33:33AM +0200, Lucas Hoffmann wrote:
> Currently there is one official "plugin" or "addon" for pass in the
> official repository: passmenu. But that uses a new script name instead
> of hacking into pass subcommands.
>
> This might be because it does not benefit the use case of passmenu much
> to exist inside the pass subcommands namespace or it might be to keep
> pass simple.
I guess that is the case because `passmenu` isn't used in the usual pass
workflow, which is in my opinion something like the following sequence
of commands in the shell:
$ pass my-custom-generate web/some-pass.file # create it
$ pass edit web/some-pass.file # adjust it a little bit
$ pass show web/some-pass.file # double check
$ pass clipwiz web/some-pass.file # paste it to the clipboard
> Attached you can find a script that wraps pass in order to call a
> subcommand script (it does what you describe above, only in an extra
> script). Maybe if your solution is to intrusive we can add this wrapper
> in the contrib/ subdirecory. Opinions?
That sounds like a nice workaround for experienced users until pass
officially supports custom subcommands. I'd refrain from adding this to
contrib/ because one has to be careful when using it with the name
"pass".
The first disadvantage of such a wrapper script is, that you can not
call it pass and place it in your $PATH. (Simply because `exec pass`
would call itself). So we have to hard-code the `pass` location, e.g.:
#!/bin/bash
if which "pass-$1" >/dev/null 2>&1; then
exec "pass-$@"
fi
exec /usr/bin/pass "$@"
Furthermore, the user has to take care that this wrapper script is
placed in a directory mentioned earlier than /usr/bin/ in $PATH.
> Quoting Thorsten Wißmann (2016-09-30 11:33:33)
> > This does not only fit the usual pass workflow (first show a file,
> > then paste it using clipwiz), but one also gets the tab-completion for
> > custom pass scripts for free.
>
> Some basic level of completion for the wrapper can be achieved in zsh
> with a simple "compdef pass-plugin-wrapper=pass". Only official
> subcommands and no plugin commands will be completed like this. But
> passwords will be completed after custom commands.
Yes, sure. If my patch was merged, one would need to extend the
subcommand completion in three completion files (bash, fish, and zsh).
> > Other command line utilities like git or hledger[2] provide those
> > custom subcommands, and I'd love to see it in pass as well. I've
> > implemented that in the attached git formatted patch, but did not know
> > whether/where/how to add an description for that in the man page.
>
> I was also looking for this functionality before so I hope that we will
> find some solution that makes it into the repository.
I'd be interested in Jason's opinion on this functionality in general.
Cheers,
Thorsten
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <http://lists.zx2c4.com/pipermail/password-store/attachments/20161007/ca19299d/attachment.asc>
More information about the Password-Store
mailing list