aboutsummaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs30
1 files changed, 9 insertions, 21 deletions
diff --git a/src/Main.hs b/src/Main.hs
index 082f69aa..af2be963 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -39,7 +39,6 @@ import qualified Data.Map as Map
import System.IO
import System.Exit
import System.Environment
-import Distribution.Verbosity
#if defined(mingw32_HOST_OS)
import Foreign
@@ -120,7 +119,6 @@ main = handleTopExceptions $ do
args <- getArgs
(flags, fileArgs) <- parseHaddockOpts args
handleEasyFlags flags
- verbosity <- getVerbosity flags
let renderStep packages interfaces = do
updateHTMLXRefs packages
@@ -145,14 +143,16 @@ main = handleTopExceptions $ do
packages <- readInterfaceFiles nameCacheFromGhc (ifacePairs flags)
-- Create the interfaces -- this is the core part of Haddock.
- (interfaces, homeLinks) <- createInterfaces verbosity fileArgs flags
- (map fst packages)
+ (ifaces, homeLinks) <- createInterfaces (verbosity flags) fileArgs flags
+ (map fst packages)
liftIO $ do
-- Render the interfaces.
- renderStep packages interfaces
+ renderStep packages ifaces
- -- Last but not least, dump the interface file.
- dumpInterfaceFile (map toInstalledIface interfaces) homeLinks flags
+ -- Dump an "interface file" (.haddock file), if requested.
+ case optDumpInterfaceFile flags of
+ Just f -> dumpInterfaceFile f (map toInstalledIface ifaces) homeLinks
+ Nothing -> return ()
else do
-- Get packages supplied with --read-interface.
@@ -250,11 +250,8 @@ readInterfaceFiles name_cache_accessor pairs = do
Right f -> return $ Just (f, html)
-dumpInterfaceFile :: [InstalledInterface] -> LinkEnv -> [Flag] -> IO ()
-dumpInterfaceFile ifaces homeLinks flags =
- case [str | Flag_DumpInterface str <- flags] of
- [] -> return ()
- fs -> let filename = last fs in writeInterfaceFile filename ifaceFile
+dumpInterfaceFile :: FilePath -> [InstalledInterface] -> LinkEnv -> IO ()
+dumpInterfaceFile path ifaces homeLinks = writeInterfaceFile path ifaceFile
where
ifaceFile = InterfaceFile {
ifInstalledIfaces = ifaces,
@@ -328,15 +325,6 @@ getGhcLibDir flags =
xs -> return $ last xs
-getVerbosity :: Monad m => [Flag] -> m Verbosity
-getVerbosity flags =
- case [ str | Flag_Verbosity str <- flags ] of
- [] -> return normal
- x:_ -> case parseVerbosity x of
- Left e -> throwE e
- Right v -> return v
-
-
handleEasyFlags :: [Flag] -> IO ()
handleEasyFlags flags = do
usage <- getUsage