Fix overbroad gpg --no-tty fix from last release.

Only set --no-tty when GPG_AGENT_INFO is set and batch mode is used.

In the test suite, set GPG_AGENT_INFO to /dev/null to avoid the test suite
relying on /dev/tty.
This commit is contained in:
Joey Hess 2012-01-07 12:38:08 -04:00
parent bdc49ddbdb
commit 60c1aeeb6f
3 changed files with 6 additions and 4 deletions

View file

@ -25,12 +25,11 @@ stdParams params = do
-- Enable batch mode if GPG_AGENT_INFO is set, to avoid extraneous
-- gpg output about password prompts.
e <- getEnv "GPG_AGENT_INFO"
let batch = if isNothing e then [] else ["--batch"]
let batch = if isNothing e then [] else ["--batch", "--no-tty"]
return $ batch ++ defaults ++ toCommand params
where
-- be quiet, even about checking the trustdb,
-- and avoid using a tty
defaults = ["--quiet", "--trust-model", "always", "--no-tty"]
-- be quiet, even about checking the trustdb
defaults = ["--quiet", "--trust-model", "always"]
{- Runs gpg with some params and returns its stdout, strictly. -}
readStrict :: [CommandParam] -> IO String

1
debian/changelog vendored
View file

@ -3,6 +3,7 @@ git-annex (3.20120106) UNRELEASED; urgency=low
* Support unescaped repository urls, like git does.
* log: New command that displays the location log for files,
showing each repository they were added to and removed from.
* Fix overbroad gpg --no-tty fix from last release.
-- Joey Hess <joeyh@debian.org> Thu, 05 Jan 2012 14:29:30 -0400

View file

@ -663,6 +663,8 @@ test_bup_remote = "git-annex bup remote" ~: intmpclonerepo $ when Build.SysConfi
-- gpg is not a build dependency, so only test when it's available
test_crypto :: Test
test_crypto = "git-annex crypto" ~: intmpclonerepo $ when Build.SysConfig.gpg $ do
-- force gpg into batch mode for the tests
setEnv "GPG_AGENT_INFO" "/dev/null" True
Utility.Gpg.testTestHarness @? "test harness self-test failed"
Utility.Gpg.testHarness $ do
createDirectory "dir"