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)