aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--haddock-test/src/Test/Haddock.hs2
-rw-r--r--haddock-test/src/Test/Haddock/Utils.hs7
2 files changed, 8 insertions, 1 deletions
diff --git a/haddock-test/src/Test/Haddock.hs b/haddock-test/src/Test/Haddock.hs
index 87c16739..e8a0ac8e 100644
--- a/haddock-test/src/Test/Haddock.hs
+++ b/haddock-test/src/Test/Haddock.hs
@@ -132,7 +132,7 @@ diffFile cfg diff file = do
maybeAcceptFile :: Config c -> FilePath -> CheckResult -> IO CheckResult
maybeAcceptFile cfg@(Config { cfgDirConfig = dcfg }) file result
| cfgAccept cfg && result `elem` [NoRef, Fail] = do
- copyFile (outFile dcfg file) (refFile dcfg file)
+ copyFile' (outFile dcfg file) (refFile dcfg file)
pure Accepted
maybeAcceptFile _ _ result = pure result
diff --git a/haddock-test/src/Test/Haddock/Utils.hs b/haddock-test/src/Test/Haddock/Utils.hs
index 4f97fa72..a947fea1 100644
--- a/haddock-test/src/Test/Haddock/Utils.hs
+++ b/haddock-test/src/Test/Haddock/Utils.hs
@@ -41,3 +41,10 @@ createEmptyDirectory :: FilePath -> IO ()
createEmptyDirectory path = do
whenM (doesDirectoryExist path) $ removeDirectoryRecursive path
createDirectory path
+
+
+-- | Just like 'copyFile' but output directory path is not required to exist.
+copyFile' :: FilePath -> FilePath -> IO ()
+copyFile' old new = do
+ createDirectoryIfMissing True $ takeDirectory new
+ copyFile old new