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
[email protected]
https://lists.zx2c4.com/mailman/listinfo/password-store
_______________________________________________
Password-Store mailing list
[email protected]
https://lists.zx2c4.com/mailman/listinfo/password-store