summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Build/TestConfig.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/Build/TestConfig.hs b/Build/TestConfig.hs
index 0cc2019cf..03d87cd8b 100644
--- a/Build/TestConfig.hs
+++ b/Build/TestConfig.hs
@@ -5,6 +5,7 @@ module Build.TestConfig where
import System.IO
import System.Cmd
import System.Exit
+import System.Directory
type ConfigKey = String
data ConfigValue =
@@ -36,8 +37,14 @@ instance Show Config where
valuetype (MaybeBoolConfig _) = "Maybe Bool"
writeSysConfig :: [Config] -> IO ()
-writeSysConfig config = writeFile "Build/SysConfig.hs" body
+writeSysConfig config = do
+ e <- doesFileExist dest
+ old <- if e then readFile dest else return []
+ if (old /= body)
+ then writeFile dest body
+ else return ()
where
+ dest = "Build/SysConfig.hs"
body = unlines $ header ++ map show config ++ footer
header = [
"{- Automatically generated. -}"