- [] ->
- error "No package or command given"
- [_] ->
- error "No command given"
- package : prog : progArgs ->
- do setCurrentDirectory package
- unbuildable <- doesFileExist "unbuildable"
- if unbuildable
- then do mustBeBuildables <- getMustBeBuildablePackages
- when (package `elem` mustBeBuildables)
- (error (package ++ " is unbuildable"))
- else do ec <- rawSystem prog progArgs
- exitWith ec
+ [package] ->
+ doit package
+ _ ->
+ error "Syntax: ifBuildable <package>"
+
+doit :: String -> IO ()
+doit package
+ = do setCurrentDirectory package
+ unbuildable <- doesFileExist "unbuildable"
+ if not unbuildable
+ then exitWith ExitSuccess
+ else do mustBeBuildables <- getMustBeBuildablePackages
+ if package `elem` mustBeBuildables
+ then exitWith ExitSuccess
+ else do hPutStrLn stderr "Warning: Package is unbuildable"
+ exitWith (ExitFailure 1)