From 25efba7ea3721264c56ca0f8a57dd166080c7eed Mon Sep 17 00:00:00 2001 From: David Waern Date: Fri, 14 May 2010 20:24:32 +0000 Subject: Move some more flag functions to Haddock.Options --- src/Haddock/Options.hs | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) (limited to 'src/Haddock/Options.hs') 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. -- cgit v1.2.3