diff options
Diffstat (limited to 'Build/Configure.hs')
-rw-r--r-- | Build/Configure.hs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Build/Configure.hs b/Build/Configure.hs new file mode 100644 index 0000000..5f41a1b --- /dev/null +++ b/Build/Configure.hs @@ -0,0 +1,31 @@ +{- Checks system configuration and generates SysConfig.hs. -} + +module Build.Configure where + +import System.Environment +import Control.Applicative +import Control.Monad.IfElse + +import Build.TestConfig +import Build.Version +import Git.Version + +tests :: [TestCase] +tests = + [ TestCase "version" getVersion + , TestCase "git" $ requireCmd "git" "git --version >/dev/null" + , TestCase "git version" getGitVersion + , TestCase "nice" $ testCmd "nice" "nice true >/dev/null" + ] + +getGitVersion :: Test +getGitVersion = Config "gitversion" . StringConfig . show + <$> Git.Version.installed + +run :: [TestCase] -> IO () +run ts = do + args <- getArgs + config <- runTests ts + writeSysConfig config + whenM (isReleaseBuild) $ + cabalSetup "git-repair.cabal" |