<div dir="ltr">Jason,<div><br></div><div> I think there is a fundamental decision here which you seem to have made, and that is pass will not auto-detect whether or not it is working with an interactive user (e.g. is stdin a terminal or pipe?) and adjust it's behavior. It assumes an interactive user and it's up to the test harness to assert appropriate options or hack the environment (e.g. set GPG_AGENT_INFO) to do what it needs to do.<br>

</div><div><br></div><div> I'm just thinking we need a "Who to write a test" README that captures things like this.</div><div><br></div><div>Von</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra">

<br><br><div class="gmail_quote">On Tue, Apr 22, 2014 at 7:53 AM, Jason A. Donenfeld <span dir="ltr"><<a href="mailto:Jason@zx2c4.com" target="_blank">Jason@zx2c4.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"><div class="gmail_extra"><br><br><div class="gmail_quote"><div class="">On Mon, Apr 21, 2014 at 3:56 AM, Von Welch <span dir="ltr"><<a href="mailto:von@vwelch.com" target="_blank">von@vwelch.com</a>></span> wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">


<div dir="ltr"><div>You fixed the interactive case, but the following now hangs if the password does not exist:</div><div><br></div><div><div>% echo "foo" | ../src/password-store.sh insert my-pass</div></div><div>




<br></div><div>(It also points out a shortcoming of sharness.sh, which is it doesn't support any timeouts on tests that I can see.)</div></div></blockquote><div><br></div></div><div>Yes. I have it ask again if we get an EOF (or CTRL+D). It's interactive, remember?</div>


<div><br></div><div>But to please your tests, I made this change:</div><div><a href="http://git.zx2c4.com/password-store/commit/?id=07bcfccebfa2f885849f0b8698a496c3c757d8a7" target="_blank">http://git.zx2c4.com/password-store/commit/?id=07bcfccebfa2f885849f0b8698a496c3c757d8a7</a><br>


</div><div class=""><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">

<div><br></div>
<div>...</div><div class="gmail_extra"><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Seems to be the desired behavior, since you don't have to enter the password twice in -e mode, right? </blockquote><div><br></div></div><div>I suggest that returning a non-zero status but not printing an error message is a bug. If a user isn't explicitly checking the return status (it's obvious to me because my prompt prints it), they could easily miss the failure.</div>


</div></div></blockquote><div><br></div></div><div>It returns 1 and exits because there's a prompt that says "override this file?" and your echo input is "foo", which is not "Y". Use -f in your tests if you'd like to avoid this. Or account for sending "y\n" if it exists. </div>


</div></div></div>
</blockquote></div><br></div>