@@ -4,28 +4,23 @@ module Build.Interface (load,isValid) where
4import qualified Data.ByteString.Lazy as L
4import qualified Data.ByteString.Lazy as L
5import qualified Data.Binary as Binary
5import qualified Data.Binary as Binary
7+import qualified Build.Print as Print
7import qualified Elm.Internal.Version as Version
8import qualified Elm.Internal.Version as Version
8import System.Directory (doesFileExist)
9import System.Directory (doesFileExist)
12import SourceSyntax.Module
10import SourceSyntax.Module
14load :: Binary.Binary a => FilePath -> IO a
12load :: Binary.Binary a => FilePath -> IO a
15load filePath =
13load filePath =
16 do exists <- doesFileExist filePath
14 do exists <- doesFileExist filePath
17 case exists of
15 case exists of
18− False -> failure $ "Unable to find file " ++ filePath ++ " for deserialization!"
16+ False -> Print.failure $ "Unable to find file " ++ filePath ++ " for deserialization!"
19 True -> do
17 True -> do
20 bytes <- L.readFile filePath
18 bytes <- L.readFile filePath
21 case Binary.decodeOrFail bytes of
19 case Binary.decodeOrFail bytes of
22 Right (_, _, binaryInfo) -> return binaryInfo
20 Right (_, _, binaryInfo) -> return binaryInfo
23− Left (_, offset, err) -> failure $ msg offset err
21+ Left (_, offset, err) -> Print.failure $ msg offset err
26− failure err = do hPutStrLn stderr err
29 msg offset err = concat
24 msg offset err = concat
30 [ "Error reading build artifact: ", filePath, "\n"
25 [ "Error reading build artifact: ", filePath, "\n"
31 , " '", err, "' at offset ", show offset, "\n"
26 , " '", err, "' at offset ", show offset, "\n"