diff options
Diffstat (limited to 'Build/Configure.hs')
-rw-r--r-- | Build/Configure.hs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/Build/Configure.hs b/Build/Configure.hs new file mode 100644 index 0000000..e488ee1 --- /dev/null +++ b/Build/Configure.hs @@ -0,0 +1,30 @@ +{- 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" (Config "packageversion" . StringConfig <$> getVersion) + , TestCase "git" $ requireCmd "git" "git --version >/dev/null" + , TestCase "git version" getGitVersion + ] + +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" |