summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/WriteRepo.hs11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/WriteRepo.hs b/lib/WriteRepo.hs
index c0bf31b..1ed3a84 100644
--- a/lib/WriteRepo.hs
+++ b/lib/WriteRepo.hs
@@ -16,15 +16,18 @@ import Data.Set (Set)
import qualified Data.Set as S
import Paths (normalise)
import System.Directory.Extra (copyFile, createDirectoryIfMissing)
+import System.Exit (ExitCode (..))
import System.FilePath (takeDirectory)
import qualified System.FilePath as FP
import System.FilePath.Posix ((</>))
import Types (Dep (Local))
-writeAdjustedRepository :: FilePath -> FilePath -> DirResult -> IO ()
+writeAdjustedRepository :: FilePath -> FilePath -> DirResult -> IO ExitCode
writeAdjustedRepository inPath outPath result
- | resultIsFatal result = pure ()
+ | resultIsFatal result = do
+ putStrLn "FATAL: Repository has missing assets; cannot write to outPath"
+ pure (ExitFailure 1)
| otherwise = do
createDirectoryIfMissing True outPath
@@ -41,7 +44,7 @@ writeAdjustedRepository inPath outPath result
let mapdir = takeDirectory mappath in
mapMaybe (\case
Local path -> Just . normalise mapdir $ path
- _ -> Nothing)
+ _ -> Nothing)
$ mapresultDepends mapresult)
. toList $ dirresultMaps result
@@ -53,3 +56,5 @@ writeAdjustedRepository inPath outPath result
in do
putStrLn $ "copying " <> assetPath <> " → " <> newPath
copyFile assetPath newPath
+
+ pure ExitSuccess