[PATCHES] improve extensions support
Lars Flitter
password-store at larsflitter.de
Mon Feb 6 22:33:16 CET 2017
Hi,
I like the idea of overriding the built in pass commands and functions.
I was looking for a way to override the clip function used in the show
command. With this approach overridden functions are contained within a
single extension, not interfering with other extensions that might rely
on the original function.
The way cmd_internal calls the cmd_-functions allows for a nice way to
alias the multi-name functions.
The only thing I'm missing is built-in support to override the implicit
show command with an extension.
This could be achieved by adding
check_extension_and_load show "$@" && exit 0
before the final
cmd_show "$@"
Regards,
Lars
On 06.02.2017 17:40, HacKan wrote:
> Hello there! I spent the last few days playing around with pass, so I
> forked it [1] and changed the way it handles extensions, because I
> wanted to allow extensions to override internal commands. I.E. if
> someone wants to modify the way /generate/ works, there's no need to
> touch pass's core but simply create an extension named /generate.bash
> /and that's all/./
>
> Here's the rough changes list:
>
> * Modified the way commands are interpreted in the script: replaced
> the switch case selection to a more flexible eval'd one.
> * Changed how extensions are handled: now extensions are loaded first,
> before interpreting the command as an internal command. This allows
> extensions to override internal commands. A helper function is
> provided so that an overridden function can still be called from the
> extension.
> * Issuing help command now shows help from the extensions if they
> implement a function named help_{extension name}(). Otherwise, it
> will list enabled extensions as commands.
>
> This keeps backwards compatibility at 100%, existing extensions are too
> 100% compatible. So for the final user these patches doesn't have any
> effect at all.
>
> Patches and signed hashes are attached.
>
> Also, I tested these and all tests passed (attached as
> /tests-result.txt/). Note that tests must be fixed first (see /[PATCH]
> Fixes for tests/ [2]).
>
> A sample /pass --help/ output with a couple of extensions I made is
> attached (/help-example.txt/).
>
> Attachment list:
> 0001-Changed-function-switch-based-on-parameters-by-a-mor.patch
> 0002-Added-helper-override_function-to-enable-extensions-.patch
> 0003-Modified-cmd_usage-to-show-extensions-usage-help-too.patch
> 0004-Minor-bugfixes-in-cmd_usage-when-showing-extensions-.patch
> 0005-Fixed-multiname-functions-parameters-were-not-being-.patch
> 0006-Small-bugfix-in-usage-command.-Also-changed-spaces-f.patch
> SHA512SUMS
> SHA512SUMS.sig
> help-example.txt
> tests-result.txt
>
> Cheers!
>
> [1]: https://github.com/HacKanCuBa/passh
> [2]:
> https://lists.zx2c4.com/pipermail/password-store/2017-February/002727.html
>
> --
> HacKan || Iván
> GPG: 0x35710D312FDE468B
>
>
>
> _______________________________________________
> Password-Store mailing list
> Password-Store at lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/password-store
>
More information about the Password-Store
mailing list