Commit 49ecb690 authored by Mikhail Glushenkov's avatar Mikhail Glushenkov Committed by GitHub
Browse files

Merge pull request #4186 from haskell/echo

Depend on echo to fix #4128
parents 09865f60 0469aba7
...@@ -18,9 +18,9 @@ import qualified Distribution.Client.BuildReports.Upload as BuildReport ...@@ -18,9 +18,9 @@ import qualified Distribution.Client.BuildReports.Upload as BuildReport
import Network.URI (URI(uriPath)) import Network.URI (URI(uriPath))
import Network.HTTP (Header(..), HeaderName(..)) import Network.HTTP (Header(..), HeaderName(..))
import System.IO (hFlush, stdin, stdout, hGetEcho, hSetEcho) import System.IO (hFlush, stdout)
import System.IO.Echo (withoutInputEcho)
import System.Exit (exitFailure) import System.Exit (exitFailure)
import Control.Exception (bracket)
import System.FilePath ((</>), takeExtension, takeFileName, dropExtension) import System.FilePath ((</>), takeExtension, takeFileName, dropExtension)
import qualified System.FilePath.Posix as FilePath.Posix ((</>)) import qualified System.FilePath.Posix as FilePath.Posix ((</>))
import System.Directory import System.Directory
...@@ -140,10 +140,8 @@ promptPassword :: IO Password ...@@ -140,10 +140,8 @@ promptPassword :: IO Password
promptPassword = do promptPassword = do
putStr "Hackage password: " putStr "Hackage password: "
hFlush stdout hFlush stdout
-- save/restore the terminal echoing status -- save/restore the terminal echoing status (no echoing for entering the password)
passwd <- bracket (hGetEcho stdin) (hSetEcho stdin) $ \_ -> do passwd <- withoutInputEcho $ fmap Password getLine
hSetEcho stdin False -- no echoing for entering the password
fmap Password getLine
putStrLn "" putStrLn ""
return passwd return passwd
......
...@@ -259,6 +259,8 @@ BASE64_BYTESTRING_VER="1.0.0.1"; BASE64_BYTESTRING_VER_REGEXP="1\." ...@@ -259,6 +259,8 @@ BASE64_BYTESTRING_VER="1.0.0.1"; BASE64_BYTESTRING_VER_REGEXP="1\."
# >=1.0 # >=1.0
CRYPTOHASH_SHA256_VER="0.11.100.1"; CRYPTOHASH_SHA256_VER_REGEXP="0\.11\.?" CRYPTOHASH_SHA256_VER="0.11.100.1"; CRYPTOHASH_SHA256_VER_REGEXP="0\.11\.?"
# 0.11.* # 0.11.*
ECHO_VER="0.1"; ECHO_VER_REGEXP="0\.1\.?"
# 0.1.*
EDIT_DISTANCE_VER="0.2.2.1"; EDIT_DISTANCE_VER_REGEXP="0\.2\.2\.?" EDIT_DISTANCE_VER="0.2.2.1"; EDIT_DISTANCE_VER_REGEXP="0\.2\.2\.?"
# 0.2.2.* # 0.2.2.*
ED25519_VER="0.0.5.0"; ED25519_VER_REGEXP="0\.0\.?" ED25519_VER="0.0.5.0"; ED25519_VER_REGEXP="0\.0\.?"
...@@ -485,6 +487,7 @@ info_pkg "base64-bytestring" ${BASE64_BYTESTRING_VER} \ ...@@ -485,6 +487,7 @@ info_pkg "base64-bytestring" ${BASE64_BYTESTRING_VER} \
${BASE64_BYTESTRING_VER_REGEXP} ${BASE64_BYTESTRING_VER_REGEXP}
info_pkg "cryptohash-sha256" ${CRYPTOHASH_SHA256_VER} \ info_pkg "cryptohash-sha256" ${CRYPTOHASH_SHA256_VER} \
${CRYPTOHASH_SHA256_VER_REGEXP} ${CRYPTOHASH_SHA256_VER_REGEXP}
info_pkg "echo" ${ECHO_VER} ${ECHO_VER_REGEXP}
info_pkg "edit-distance" ${EDIT_DISTANCE_VER} ${EDIT_DISTANCE_VER_REGEXP} info_pkg "edit-distance" ${EDIT_DISTANCE_VER} ${EDIT_DISTANCE_VER_REGEXP}
info_pkg "ed25519" ${ED25519_VER} ${ED25519_VER_REGEXP} info_pkg "ed25519" ${ED25519_VER} ${ED25519_VER_REGEXP}
info_pkg "tar" ${TAR_VER} ${TAR_VER_REGEXP} info_pkg "tar" ${TAR_VER} ${TAR_VER_REGEXP}
...@@ -521,6 +524,7 @@ do_pkg "base64-bytestring" ${BASE64_BYTESTRING_VER} \ ...@@ -521,6 +524,7 @@ do_pkg "base64-bytestring" ${BASE64_BYTESTRING_VER} \
${BASE64_BYTESTRING_VER_REGEXP} ${BASE64_BYTESTRING_VER_REGEXP}
do_pkg "cryptohash-sha256" ${CRYPTOHASH_SHA256_VER} \ do_pkg "cryptohash-sha256" ${CRYPTOHASH_SHA256_VER} \
${CRYPTOHASH_SHA256_VER_REGEXP} ${CRYPTOHASH_SHA256_VER_REGEXP}
do_pkg "echo" ${ECHO_VER} ${ECHO_VER_REGEXP}
do_pkg "edit-distance" ${EDIT_DISTANCE_VER} ${EDIT_DISTANCE_VER_REGEXP} do_pkg "edit-distance" ${EDIT_DISTANCE_VER} ${EDIT_DISTANCE_VER_REGEXP}
do_pkg "ed25519" ${ED25519_VER} ${ED25519_VER_REGEXP} do_pkg "ed25519" ${ED25519_VER} ${ED25519_VER_REGEXP}
......
...@@ -349,6 +349,7 @@ executable cabal ...@@ -349,6 +349,7 @@ executable cabal
containers >= 0.4 && < 0.6, containers >= 0.4 && < 0.6,
cryptohash-sha256 >= 0.11 && < 0.12, cryptohash-sha256 >= 0.11 && < 0.12,
deepseq >= 1.3 && < 1.5, deepseq >= 1.3 && < 1.5,
echo >= 0.1 && < 0.2,
edit-distance >= 0.2.2 && < 0.3, edit-distance >= 0.2.2 && < 0.3,
filepath >= 1.3 && < 1.5, filepath >= 1.3 && < 1.5,
hashable >= 1.0 && < 2, hashable >= 1.0 && < 2,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment