packages feed

hoq-0.1.0.0: Setup.hs

import Distribution.Simple
import Control.Monad
import System.Directory
import System.Process
import System.Exit

main :: IO ()
main = do
    b <- doesFileExist "src/Syntax/BNFC/AbsGrammar.hs"
    unless b bnfc
    t1 <- getModificationTime $ "src/" ++ grammar
    t2 <- getModificationTime "src/Syntax/BNFC"
    if t1 > t2 then bnfc else defaultMain
  where
    grammar = "Syntax/Grammar.cf"
    bnfc = do
        dir <- getCurrentDirectory
        setCurrentDirectory "src"
        status <- system $ "bnfc -p Syntax.BNFC " ++ grammar
        setCurrentDirectory dir
        case status of
            ExitSuccess -> defaultMain
            _ -> return ()
        exitWith status