on ryan-jsstring-inline help sign in
34 lines 1.2 kB history raw
1-- | Program which exposes some haskell functions as an exutable. The results
2-- and coverage of this module is meant to be checked using a shell script.
3--
4module Main
5 (
6 main
7 ) where
9import System.Environment (getArgs)
10import System.Exit (exitFailure)
11import System.IO (hPutStrLn, stderr)
12import qualified Data.Text as T
13import qualified Data.Text.IO as T
14import qualified Data.Text.Lazy as TL
15import qualified Data.Text.Lazy.IO as TL
17main :: IO ()
18main = do
19 args <- getArgs
20 case args of
21 ["T.readFile", name] -> T.putStr =<< T.readFile name
22 ["T.writeFile", name, t] -> T.writeFile name (T.pack t)
23 ["T.appendFile", name, t] -> T.appendFile name (T.pack t)
24 ["T.interact"] -> T.interact id
25 ["T.getContents"] -> T.putStr =<< T.getContents
26 ["T.getLine"] -> T.putStrLn =<< T.getLine
28 ["TL.readFile", name] -> TL.putStr =<< TL.readFile name
29 ["TL.writeFile", name, t] -> TL.writeFile name (TL.pack t)
30 ["TL.appendFile", name, t] -> TL.appendFile name (TL.pack t)
31 ["TL.interact"] -> TL.interact id
32 ["TL.getContents"] -> TL.putStr =<< TL.getContents
33 ["TL.getLine"] -> TL.putStrLn =<< TL.getLine
34 _ -> hPutStrLn stderr "invalid directive!" >> exitFailure