zeroth-2008.10.27: src/Main.hs
module Main ( main ) where
import Zeroth ( zeroth )
import Setup ( parseArgs, ConfigFlags (..), mkConfigFlags )
import System.Environment ( getArgs )
import System.IO ( hGetContents, stdin, stdout, hPutStr )
readFromFile :: FilePath -> IO String
readFromFile "-" = hGetContents stdin
readFromFile path = readFile path
writeToFile :: FilePath -> String -> IO ()
writeToFile "-" d = hPutStr stdout d
writeToFile path d = writeFile path d
main :: IO ()
main = do args <- getArgs
configFlags <- mkConfigFlags =<< parseArgs args
input <- readFromFile (configInputFile configFlags)
output <- zeroth (configGHCPath configFlags)
(configCpphsPath configFlags)
(configGHCArgs configFlags)
(configCpphsArgs configFlags)
input
writeToFile (configOutputFile configFlags) output