diff options
Diffstat (limited to 'scratch/brilliant/Main.hs')
-rw-r--r-- | scratch/brilliant/Main.hs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/scratch/brilliant/Main.hs b/scratch/brilliant/Main.hs index 4cc6ac1101c2..e94c73bea287 100644 --- a/scratch/brilliant/Main.hs +++ b/scratch/brilliant/Main.hs @@ -12,6 +12,7 @@ import qualified App data CommandArgs = CommandArgs { transforms :: String + , passage :: String } deriving (Eq, Show) parseArgs :: Parser CommandArgs @@ -20,13 +21,22 @@ parseArgs = ( long "transforms" <> short 't' <> help "String of transforms where (e.g. \"HHVS12VHVHS3\")" ) + <*> strOption + ( long "passage" + <> short 'p' + <> help "Input text to re-type" ) main :: IO () main = do CommandArgs{..} <- execParser opts case Transforms.fromString transforms of Nothing -> putStrLn "You must provide valid input (e.g. \"HHVS12VHVHS3\")" - Just xs -> print $ foldl App.transform Keyboard.qwerty xs + Just xs -> do + let keyboard = foldl App.transform Keyboard.qwerty (Transforms.optimize xs) + putStrLn $ "Typing: \"" ++ passage ++ "\"\nOn this keyboard:\n" ++ show keyboard + case App.retypePassage passage keyboard of + Nothing -> putStrLn $ "Looks like at least one of the characters in your input passage doesn't fit on our QWERTY keyboard: \n" ++ show Keyboard.qwerty + Just result -> putStrLn $ "Result: " ++ result where opts = info (parseArgs <**> helper) ( fullDesc |