module Main where
import System.Environment (getArgs)
import EHaskell (mkEhsSrc)
import EHaskellTools (createEhsDir, copyModuleFile, writeCode, makeExe,
runExe, processOptionEhs)
import Data.List.Tools (dropUntil)
import Control.Applicative((<$>))
main :: IO ()
main = do
-- args <- getArgs
(eqs, outfile, infile) <- processOptionEhs <$> getArgs
let -- infile = head $ filter (notElem '=') args
defs = filter (elem '=') eqs
cont <- readFile infile
let (src,mods) = mkEhsSrc (map splitAtEq defs) cont
mapM_ (copyModuleFile infile) mods
createEhsDir infile
writeCode infile src
makeExe infile
runExe infile outfile
splitAtEq :: String -> (String, String)
splitAtEq str = (takeWhile (/='=') str, dropUntil (=='=') str)