old-locale is now split out
[ghc-hetmet.git] / libraries / ifBuildable.hs
1
2 module Main (main) where
3
4 import Control.Monad
5 import System.Cmd
6 import System.Directory
7 import System.Environment
8 import System.Exit
9
10 main :: IO ()
11 main = do args <- getArgs
12           case args of
13               [] ->
14                   error "No package or command given"
15               [_] ->
16                   error "No command given"
17               package : prog : progArgs ->
18                   do setCurrentDirectory package
19                      unbuildable <- doesFileExist "unbuildable"
20                      if unbuildable
21                         then do mustBeBuildables <- getMustBeBuildablePackages
22                                 when (package `elem` mustBeBuildables)
23                                      (error (package ++ " is unbuildable"))
24                         else do ec <- rawSystem prog progArgs
25                                 exitWith ec
26
27 getMustBeBuildablePackages :: IO [String]
28 getMustBeBuildablePackages
29  = do xs <- readFile "../core-packages"
30       return $ filter ("readline" /=) $ lines xs
31