-getHelp supportLevel = do
- id <- toString <$> Data.UUID.V4.nextRandom
- editor <- appendFile ("/tmp/xdg-ninja." ++ id ++ ".md") (getTemplate supportLevel) >> (getEnv "EDITOR")
- (_, _, _, p) <- createProcess (shell (editor ++ " /tmp/xdg-ninja." ++ id ++ ".md"))
- f <- waitForProcess p
- case f of
- ExitSuccess -> readFile ("/tmp/xdg-ninja." ++ id ++ ".md")
- ExitFailure a -> return ""
-
-getProp :: T.Text -> T.Text -> IO String
-getProp prompt placeholder = do
- let string_prompt = T.unpack prompt
- let string_placholder = T.unpack placeholder
- x <- runInputT defaultSettings (getInputLineWithInitial string_prompt (string_placholder, ""))
- case x of
- Just s -> return s
- Nothing -> return ""
-
-data Answer = Yes | No | Unknown
-
-stringToBool :: String -> Answer
-stringToBool s = case lower s of
- "yes" -> Yes
- "y" -> Yes
- "1" -> Yes
- "no" -> No
- "n" -> No
- "0" -> No
- _ -> Unknown
-
-promptBool :: T.Text -> T.Text -> T.Text -> IO Bool
-promptBool prompt prompt_unrecognised placeholder = do
- x <- getProp prompt placeholder
- case stringToBool x of
- Yes -> return True
- No -> return False
- Unknown -> printf "%s\n" prompt_unrecognised >> promptBool prompt prompt_unrecognised placeholder