@@ -5,6 +5,8 @@ module Util.System(tempfile,withTempdir,getTargetDir,getCC,
55
66-- System helper functions.
77import Control.Monad (when)
8+import Control.Applicative ((<$>))
9+import Data.Maybe (fromMaybe)
810import Distribution.Text (display)
911import System.Directory (getTemporaryDirectory
1012 , removeFile
@@ -26,22 +28,18 @@ throwIO :: IOError -> IO a
2628throwIO = CE.throw
2729
2830
29−
3031getCC :: IO String
31−getCC = do env <- environment "IDRIS_CC"
32− case env of
33− Nothing -> return "gcc"
34− Just cc -> return cc
32+getCC = fromMaybe "gcc" <$> environment "IDRIS_CC"
3533
36−getMvn :: IO String
37−getMvn = do env <- environment "IDRIS_MVN"
38− case env of
34+mvnCommand :: String
3935#ifdef mingw32_HOST_OS
40− Nothing -> return "mvn.bat"
36+mvnCommand = "mvn.bat"
4137#else
42− Nothing -> return "mvn"
38+mvnCommand = "mvn"
4339#endif
44− Just mvn -> return mvn
40+
41+getMvn :: IO String
42+getMvn = fromMaybe mvnCommand <$> environment "IDRIS_MVN"
4543
4644tempfile :: IO (FilePath, Handle)
4745tempfile = do dir <- getTemporaryDirectory