projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
FIX #2049, another problem with the module context on :reload
[ghc-hetmet.git]
/
libraries
/
ifBuildable.hs
diff --git
a/libraries/ifBuildable.hs
b/libraries/ifBuildable.hs
index
3119aee
..
f163ca2
100644
(file)
--- a/
libraries/ifBuildable.hs
+++ b/
libraries/ifBuildable.hs
@@
-1,8
+1,9
@@
+-- Returns exitcode 0 if the given package is buildable or is a boot package,
+-- and 1 otherwise.
module Main (main) where
import Control.Monad
module Main (main) where
import Control.Monad
-import System.Cmd
import System.Directory
import System.Environment
import System.Exit
import System.Directory
import System.Environment
import System.Exit
@@
-11,27
+12,24
@@
import System.IO
main :: IO ()
main = do args <- getArgs
case args of
main :: IO ()
main = do args <- getArgs
case args of
- [] ->
- error "No package or command given"
- [_] ->
- error "No command given"
- package : prog : progArgs ->
- doit package prog progArgs
+ [package] ->
+ doit package
+ _ ->
+ error "Syntax: ifBuildable <package>"
-doit :: String -> String -> [String] -> IO ()
-doit package prog progArgs
+doit :: String -> IO ()
+doit package
= do setCurrentDirectory package
unbuildable <- doesFileExist "unbuildable"
= do setCurrentDirectory package
unbuildable <- doesFileExist "unbuildable"
- if unbuildable
- then do mustBeBuildables <- getMustBeBuildablePackages
+ if not unbuildable
+ then exitWith ExitSuccess
+ else do mustBeBuildables <- getMustBeBuildablePackages
if package `elem` mustBeBuildables
if package `elem` mustBeBuildables
- then error (package ++ " is unbuildable")
- else hPutStrLn stderr "Warning: Package is unbuildable"
- else do ec <- rawSystem prog progArgs
- exitWith ec
+ then exitWith ExitSuccess
+ else do hPutStrLn stderr "Warning: Package is unbuildable"
+ exitWith (ExitFailure 1)
getMustBeBuildablePackages :: IO [String]
getMustBeBuildablePackages
getMustBeBuildablePackages :: IO [String]
getMustBeBuildablePackages
- = do xs <- readFile "../core-packages"
+ = do xs <- readFile "../boot-packages"
return $ filter ("readline" /=) $ lines xs
return $ filter ("readline" /=) $ lines xs
-