cookbook-1.3.0.0: Cookbook/Essential/IO.hs
--Cookbook.Essential.IO
--IO is the only Cookbook library to import System modules. As the name states, Cookbook.IO makes IO
--easier and less error-prone by wrapping common IO "gotchas" in a function.
module Cookbook.Essential.IO(filelines,prompt,inhome,getHomePath) where
import qualified System.IO as LIO
import qualified System.IO.Strict as SIO
import System.Environment
import System.Directory
-- | Returns the lines of a file, wrapped in an IO.
filelines :: String -> IO ([String])
filelines x = do
y <- LIO.openFile x LIO.ReadMode
yc <- SIO.hGetContents y
return (lines yc)
-- | Prompts the user for a string
prompt :: String -> IO (String)
prompt x = do
putStr x
LIO.hFlush LIO.stdout
getLine
inhome :: String -> LIO.IOMode -> IO (LIO.Handle)
inhome x c = do
home <- getHomeDirectory
LIO.openFile (home ++ x) c
getHomePath :: String -> IO (String)
getHomePath x = do
home <- getHomeDirectory
return (home ++ x)