Shared: Better error message when default data file not found.
Listing the full path can confuse people who are using `--self-contained`: they might have intended the file to be found locally. So now we just list the data file name.
This commit is contained in:
parent
5af0de23cc
commit
172f020bc5
1 changed files with 7 additions and 3 deletions
|
@ -583,8 +583,7 @@ readDefaultDataFile :: FilePath -> IO BS.ByteString
|
|||
readDefaultDataFile fname =
|
||||
#ifdef EMBED_DATA_FILES
|
||||
case lookup (makeCanonical fname) dataFiles of
|
||||
Nothing -> ioError $ userError
|
||||
$ "Data file `" ++ fname ++ "' does not exist"
|
||||
Nothing -> err 97 $ "Could not find data file " ++ fname
|
||||
Just contents -> return contents
|
||||
where makeCanonical = joinPath . transformPathParts . splitDirectories
|
||||
transformPathParts = reverse . foldl go []
|
||||
|
@ -592,7 +591,12 @@ readDefaultDataFile fname =
|
|||
go (_:as) ".." = as
|
||||
go as x = x : as
|
||||
#else
|
||||
getDataFileName ("data" </> fname) >>= BS.readFile
|
||||
getDataFileName ("data" </> fname) >>= checkExistence >>= BS.readFile
|
||||
where checkExistence fn = do
|
||||
exists <- doesFileExist fn
|
||||
if exists
|
||||
then return fn
|
||||
else err 97 ("Could not find data file " ++ fname)
|
||||
#endif
|
||||
|
||||
-- | Read file from specified user data directory or, if not found there, from
|
||||
|
|
Loading…
Add table
Reference in a new issue