module Cookbook.Essential.IO where
import qualified System.IO as LIO
import qualified System.IO.Strict as SIO
import qualified Cookbook.Essential.Common as Cm
import qualified Cookbook.Essential.Continuous as Ct
import System.Directory
filelines :: String -> IO [String]
filelines x = fmap lines $ LIO.openFile x LIO.ReadMode >>= SIO.hGetContents
prompt :: String -> IO String
prompt x = do
putStr x
LIO.hFlush LIO.stdout
getLine
inhome :: String -> LIO.IOMode -> IO LIO.Handle
inhome x c = fmap ((++x).(++"/")) getHomeDirectory >>= flip LIO.openFile c
filename :: String -> String
filename = Cm.fromLast (`Ct.before` '/')
modulename :: String -> String
modulename = Cm.fromLast (`Ct.after` '/')