<div dir="ltr">Alternatively, Pass could simply commit to its current implementation of using the filesystem as it does and that would resolve any potential future incompatibility issues just as well. If we were voting, that's what I would vote for.<div><br></div><div><a href="https://www.passwordstore.org/">The Pass website</a> currently seems to support such an interpretation:</div><div><br></div><div>> Password management should be simple and follow <a href="https://www.wikiwand.com/en/Unix_philosophy">Unix philosophy</a>. With pass, each password lives inside of a gpg encrypted file whose filename is the title of the website or resource that requires the password. These encrypted files may be organized into meaningful folder hierarchies, copied from computer to computer, and, in general, manipulated using standard command line file management utilities.</div><div><br></div><div>Every program that uses the filesystem doesn't need to provide an API with its own abstraction over the filesystem. Anything that wants to can just use the filesystem directly!</div><div><br></div><div><br><div><br></div><div>Even assuming that the existing patches are complete and without bugs, there's documentation too both in Pass itself, the Pass man page, and the Pass website, all of which might need or warrant being updated. But then of course there's the cost of maintaining that feature indefinitely too. Please be considerate in <i>expecting </i>someone else to commit to doing that work for you. I'm not claiming you are, but you certainly seem to be minimizing the amount of potential work that needs to be done.</div><div><br></div><div>If we're properly accounting for all of the effort involved by everyone anywhere, the easiest thing for you to do would be to just maintain your own private fork of Pass with whatever patches you want to incorporate. I'm considering doing that myself precisely because writing long commands or maintaining separate scripts is a 'hassle'. Tho of course maintaining a fork is a 'hassle' too. Trade-offs abound! </div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Nov 10, 2016 at 2:45 AM, Linden Krouse <span dir="ltr"><<a href="mailto:ztaticnull@gmail.com" target="_blank">ztaticnull@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">While you could read the password directory directly, wouldn't it be better for future compatibly to have pass print the raw key names? If pass ever changes the way it stores it's passwords, every script relying on the current layout will break. Also, `<span style="font-size:12.8px">{ cd ${PASSWORD_STORE_DIR:-$HOME/.</span><span style="font-size:12.8px">p<wbr>assword-store}; find -type f -name '*.gpg' -printf "%P\n" | sed 's/\.gpg$//'; }` is much longer and more difficult to read than `pass ls --raw` which describes exactly what is being done. Having to do this repeatedly, or create and store a script specifically to do this just adds more hassle to pass.</span><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Lastly, at least one other person has written a patch to add this feature so it wouldn't take any additional effort to implement, as the work as already been done.<br></span><div class="gmail_extra"><div><div class="h5"><br><div class="gmail_quote">On Wed, Nov 9, 2016 at 3:43 PM, Lenz Weber <span dir="ltr"><<a href="mailto:mail@lenzw.de" target="_blank">mail@lenzw.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Actually, if you want to write a software to use that ouput this should<br>
be quite intuitive for you, yes.<br>
<br>
Even simpler would be<br>
<br>
{ cd ${PASSWORD_STORE_DIR:-$HOME/.p<wbr>assword-store}; find -type f -name<br>
'*.gpg' -printf "%P\n" | sed 's/\.gpg$//'; }<br>
<br>
just don't forget the braces.<br>
<br>
Am 09.11.2016 um 21:22 schrieb Tobias Girstmair:<br>
>> TL;DR We don't need `pass ls --raw` because we have `ls -1`<br>
><br>
> well, `ls -1` doesn't exactly provide a recursive output. this could be done with a convoluted tree statement (see my patch) or this find one (which isn't simpler, and I haven't checked for symlinks or other strange things):<br>
><br>
><br>
> find ${PASSWORD_STORE_DIR:-$HOME/.p<wbr>assword-store} -type f -name '*.gpg'|sed 's|^${PASSWORD_STORE_DIR:-$HOM<wbr>E/.password-store}/||'|sed 's/\.gpg$//'<br>
><br>
><br>
> intuitive, isn't it? ;-)<br>
><br>
> Another use case is an interactive user, who wants to copy-paste a line of the `pass ls` output into `pass show`.<br>
><br>
> -- Tobias<br>
> ______________________________<wbr>_________________<br>
> Password-Store mailing list<br>
> <a href="mailto:Password-Store@lists.zx2c4.com" target="_blank">Password-Store@lists.zx2c4.com</a><br>
> <a href="http://lists.zx2c4.com/mailman/listinfo/password-store" rel="noreferrer" target="_blank">http://lists.zx2c4.com/mailman<wbr>/listinfo/password-store</a><br>
<br>
<br>
<br>
______________________________<wbr>_________________<br>
Password-Store mailing list<br>
<a href="mailto:Password-Store@lists.zx2c4.com" target="_blank">Password-Store@lists.zx2c4.com</a><br>
<a href="http://lists.zx2c4.com/mailman/listinfo/password-store" rel="noreferrer" target="_blank">http://lists.zx2c4.com/mailman<wbr>/listinfo/password-store</a><br>
</blockquote></div><br><br clear="all"><br></div></div><span class="HOEnZb"><font color="#888888">-- <br><div class="m_-7657971741775106887gmail-m_-3052958364300153933gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>- Sent from my microwave oven</div></div></div></div></div>
</font></span></div></div></div>
<br>______________________________<wbr>_________________<br>
Password-Store mailing list<br>
<a href="mailto:Password-Store@lists.zx2c4.com">Password-Store@lists.zx2c4.com</a><br>
<a href="http://lists.zx2c4.com/mailman/listinfo/password-store" rel="noreferrer" target="_blank">http://lists.zx2c4.com/<wbr>mailman/listinfo/password-<wbr>store</a><br>
<br></blockquote></div><br></div>