summaryrefslogtreecommitdiffhomepage
path: root/UI/Readline.hs
diff options
context:
space:
mode:
authorJoey Hess <joeyh@joeyh.name>2016-08-16 14:58:16 -0400
committerJoey Hess <joeyh@joeyh.name>2016-08-16 14:58:16 -0400
commitfccf788a5ce9788d7c073321a3d19941bc1269b1 (patch)
tree76726eb3d3cd6fbb05721e5862e87511d1683b76 /UI/Readline.hs
parentc9c476ae7216b80932b80870a2cd06f9339306aa (diff)
downloadkeysafe-fccf788a5ce9788d7c073321a3d19941bc1269b1.tar.gz
more command line interface improvements
Diffstat (limited to 'UI/Readline.hs')
-rw-r--r--UI/Readline.hs23
1 files changed, 14 insertions, 9 deletions
diff --git a/UI/Readline.hs b/UI/Readline.hs
index 50f2e99..086da1e 100644
--- a/UI/Readline.hs
+++ b/UI/Readline.hs
@@ -17,13 +17,18 @@ import qualified Data.ByteString.UTF8 as BU8
readlineUI :: UI
readlineUI = UI
{ isAvailable = queryTerminal stdInput
- , promptName = name
- , promptPassword = password
- , withProgress = progress
+ , showError = myShowError
+ , promptName = myPromptName
+ , promptPassword = myPromptPassword
+ , withProgress = myWithProgress
}
-name :: Title -> Desc -> Name -> (Name -> Maybe Problem) -> IO (Maybe Name)
-name title desc (Name suggested) checkproblem = do
+myShowError :: Desc -> IO ()
+myShowError desc = do
+ hPutStrLn stderr $ "Error: " ++ desc
+
+myPromptName :: Title -> Desc -> Name -> (Name -> Maybe Problem) -> IO (Maybe Name)
+myPromptName title desc (Name suggested) checkproblem = do
showTitle title
putStrLn desc
go
@@ -44,8 +49,8 @@ name title desc (Name suggested) checkproblem = do
go
Nothing -> return Nothing
-password :: Title -> Desc -> (Password -> Maybe Problem) -> IO (Maybe Password)
-password title desc checkproblem = bracket setup teardown (const go)
+myPromptPassword :: Title -> Desc -> (Password -> Maybe Problem) -> IO (Maybe Password)
+myPromptPassword title desc checkproblem = bracket setup teardown (const go)
where
setup = do
showTitle title
@@ -78,8 +83,8 @@ password title desc checkproblem = bracket setup teardown (const go)
putStrLn problem
go
-progress :: Title -> Desc -> ((Percent -> IO ()) -> IO ()) -> IO ()
-progress title desc a = bracket_ setup teardown (a sendpercent)
+myWithProgress :: Title -> Desc -> ((Percent -> IO ()) -> IO ()) -> IO ()
+myWithProgress title desc a = bracket_ setup teardown (a sendpercent)
where
setup = do
showTitle title