-- | haste-inst - Haste wrapper for cabal. module Main where import System.FilePath import System.Environment import Haste.Environment import Data.List type Match = (String -> Bool, [String] -> [String]) cabal :: [String] -> IO () cabal args = do runAndWait "cabal" (hasteargs ++ args) Nothing where hasteargs | "build" `elem` args = ["--with-ghc=" ++ hasteBinary] | otherwise = ["--with-compiler=" ++ hasteBinary, "--with-hc-pkg=" ++ hastePkgBinary, "--with-hsc2hs=hsc2hs", "--prefix=" ++ hasteInstDir, "--package-db=" ++ pkgDir] main :: IO () main = do as <- getArgs as <- return $ if "--install-jsmods" `elem` as || not ("build" `elem` as) then libinstall : filter (/= "--install-jsmods") as else as as <- return $ if "--unbooted" `elem` as then unbooted : filter (/= "--unbooted") as else as cabal as where libinstall = "--ghc-option=--libinstall" unbooted = "--ghc-option=--unbooted"