aboutsummaryrefslogtreecommitdiff
path: root/src/Haddock/Options.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Haddock/Options.hs')
-rw-r--r--src/Haddock/Options.hs29
1 files changed, 22 insertions, 7 deletions
diff --git a/src/Haddock/Options.hs b/src/Haddock/Options.hs
index 7fdb7a35..de8191c7 100644
--- a/src/Haddock/Options.hs
+++ b/src/Haddock/Options.hs
@@ -23,12 +23,15 @@ module Haddock.Options (
optCssFile,
optSourceUrls,
optWikiUrls,
+ optDumpInterfaceFile,
+ verbosity,
ghcFlags,
ifacePairs
) where
import Data.Maybe
+import Distribution.Verbosity
import Haddock.Utils
import Haddock.Types
import System.Console.GetOpt
@@ -209,19 +212,31 @@ optWikiUrls flags =
,listToMaybe [str | Flag_WikiEntityURL str <- flags])
+optDumpInterfaceFile :: [Flag] -> Maybe FilePath
+optDumpInterfaceFile flags = optLast [ str | Flag_DumpInterface str <- flags ]
+
+
+verbosity :: [Flag] -> Verbosity
+verbosity flags =
+ case [ str | Flag_Verbosity str <- flags ] of
+ [] -> normal
+ x:_ -> case parseVerbosity x of
+ Left e -> throwE e
+ Right v -> v
+
+
ghcFlags :: [Flag] -> [String]
ghcFlags flags = [ option | Flag_OptGhc option <- flags ]
ifacePairs :: [Flag] -> [(FilePath, FilePath)]
ifacePairs flags = [ parseIfaceOption s | Flag_ReadInterface s <- flags ]
-
-
-parseIfaceOption :: String -> (FilePath, FilePath)
-parseIfaceOption s =
- case break (==',') s of
- (fpath,',':file) -> (fpath, file)
- (file, _) -> ("", file)
+ where
+ parseIfaceOption :: String -> (FilePath, FilePath)
+ parseIfaceOption str =
+ case break (==',') str of
+ (fpath, ',':file) -> (fpath, file)
+ (file, _) -> ("", file)
-- | Like 'listToMaybe' but returns the last element instead of the first.