Commit 5fffd9b2 authored by Duncan Coutts's avatar Duncan Coutts
Browse files

ghc-pkg: report parser warnings when registering packages

parent f35a3d24
...@@ -647,7 +647,7 @@ parseMultiPackageConf verbosity file = do ...@@ -647,7 +647,7 @@ parseMultiPackageConf verbosity file = do
parseSingletonPackageConf :: Verbosity -> FilePath -> IO InstalledPackageInfo parseSingletonPackageConf :: Verbosity -> FilePath -> IO InstalledPackageInfo
parseSingletonPackageConf verbosity file = do parseSingletonPackageConf verbosity file = do
when (verbosity > Normal) $ putStrLn ("reading package config: " ++ file) when (verbosity > Normal) $ putStrLn ("reading package config: " ++ file)
readUTF8File file >>= parsePackageInfo readUTF8File file >>= fmap fst . parsePackageInfo
cachefilename :: FilePath cachefilename :: FilePath
cachefilename = "package.cache" cachefilename = "package.cache"
...@@ -764,10 +764,14 @@ registerPackage input verbosity my_flags auto_ghci_libs expand_env_vars update f ...@@ -764,10 +764,14 @@ registerPackage input verbosity my_flags auto_ghci_libs expand_env_vars update f
expanded <- if expand_env_vars then expandEnvVars s force expanded <- if expand_env_vars then expandEnvVars s force
else return s else return s
pkg <- parsePackageInfo expanded (pkg, ws) <- parsePackageInfo expanded
when (verbosity >= Normal) $ when (verbosity >= Normal) $
putStrLn "done." putStrLn "done."
-- report any warnings from the parse phase
_ <- reportValidateErrors [] ws
(display (sourcePackageId pkg) ++ ": Warning: ") Nothing
-- validate the expanded pkg, but register the unexpanded -- validate the expanded pkg, but register the unexpanded
pkgroot <- absolutePath (takeDirectory to_modify) pkgroot <- absolutePath (takeDirectory to_modify)
let top_dir = takeDirectory (location (last db_stack)) let top_dir = takeDirectory (location (last db_stack))
...@@ -786,10 +790,13 @@ registerPackage input verbosity my_flags auto_ghci_libs expand_env_vars update f ...@@ -786,10 +790,13 @@ registerPackage input verbosity my_flags auto_ghci_libs expand_env_vars update f
parsePackageInfo parsePackageInfo
:: String :: String
-> IO InstalledPackageInfo -> IO (InstalledPackageInfo, [ValidateWarning])
parsePackageInfo str = parsePackageInfo str =
case parseInstalledPackageInfo str of case parseInstalledPackageInfo str of
ParseOk _warns ok -> return ok ParseOk warnings ok -> return (ok, ws)
where
ws = [ msg | PWarning msg <- warnings
, not ("Unrecognized field pkgroot" `isPrefixOf` msg) ]
ParseFailed err -> case locatedErrorMsg err of ParseFailed err -> case locatedErrorMsg err of
(Nothing, s) -> die s (Nothing, s) -> die s
(Just l, s) -> die (show l ++ ": " ++ s) (Just l, s) -> die (show l ++ ": " ++ s)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment