diff options
author | William Carroll <wpcarro@gmail.com> | 2020-08-05T23·18+0100 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-08-05T23·18+0100 |
commit | 5f52077492160195681a0a9bca806fd78ddbd6fd (patch) | |
tree | 2ab12112b52bda8ecc314954fbdb200443e97454 /scratch/brilliant/Main.hs | |
parent | e14fff7d4b04c37155acf046b7b3f350cf6ad3b6 (diff) |
Re-type type using the altered keyboard
Remember: always read the instructions; that's the most important part.
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 |