[PATCHES] improve extensions support

David Izquierdo thecofee at gmail.com
Tue Feb 7 16:41:22 CET 2017


Although my first thought on overriding pass commands was of 
celebration, I do think it misses the point. Once you need to overwrite 
pass itself, you might as well modify the actual script. Also, enforcing 
extensions to use their own namespace seems safer in the long run. 
Someone mentioned before the risk of a rogue facebook.com extension...


In the end, typing `pass insert2` isn't much different from `pass 
insert`. Add in a more imaginative name, and the need for overriding the 
default insert is close to null.


On 07/02/17 14:49, HacKan wrote:
> Well, you can't override more than once because you can't have 2 files
> with the same name. This allows users more freedom, they can choose to
> use internal commands or extensions. The pass core isn't touched.
>
> Current extensions are not affected at all. Also, users wanting to use
> an extension that normally overrides an internal command without doing
> that can simply rename the extension file.
>
> I believe it provides more usability and alternatives without changing
> the pass core. Those who want to use pass w/o extensions can do it;
> those who want extensions can have them; those who want extensions that
> override internal commands can have them too. What's wrong with giving
> the community that?
>
> Cheers!
>
>
> On 02/07/2017 09:57 AM, Alexandre Pujol wrote:
>> Hi,
>>
>> Although the idea is interesting, I don't know if I like the concept.
>>
>> Pass should stay pass. This is a simple password manager that can be
>> extended in order to provide community command. What you are proposing
>> is to provide to the community a way to completely overwrite any command
>> (and therefore to do what the fuck they want with pass itself). It is
>> not an extension feature any-more, it is an offensive overwriting
>> feature. It could have major consequences on pass itself.
>>
>> Moreover, from a technical point of view I see a mess coming when you
>> will need to manage the 10th overwriting of the same core command. What
>> about classic extension compatibility with the overwritten core command?
>>
>> Jason has already be kind enough to provide us the extension feature.
>> What you are proposing seem too much for me.
>>
>>
>> Anyone else in this ML has an opinion on this?
>>
>> Regards,
>> Alex
>>
>> On 06/02/17 16: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
>>>
>> _______________________________________________
>> 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