diff options
author | andy@galois.com <unknown> | 2007-07-20 23:57:03 +0000 |
---|---|---|
committer | andy@galois.com <unknown> | 2007-07-20 23:57:03 +0000 |
commit | 4799dfb37be922c17451f8e0f7c8d765a7a7eaab (patch) | |
tree | a548c93155d94e67c4d3b07302f085412b36863e /utils/hpc/HpcMarkup.hs | |
parent | 30091f98d69664e7f748639749938dc3a0d5821e (diff) | |
download | haskell-4799dfb37be922c17451f8e0f7c8d765a7a7eaab.tar.gz |
hpc-tools: improving flag processing and help messages, small bug fixes.
Diffstat (limited to 'utils/hpc/HpcMarkup.hs')
-rw-r--r-- | utils/hpc/HpcMarkup.hs | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/utils/hpc/HpcMarkup.hs b/utils/hpc/HpcMarkup.hs index d4f4ee6587..4b3b976f5a 100644 --- a/utils/hpc/HpcMarkup.hs +++ b/utils/hpc/HpcMarkup.hs @@ -11,6 +11,7 @@ import Trace.Hpc.Util import HpcFlags +import System.Environment import System.Directory import Data.List import Data.Maybe(fromJust) @@ -19,13 +20,14 @@ import qualified HpcSet as Set ------------------------------------------------------------------------------ -markup_options = - [ excludeOpt,includeOpt,hpcDirOpt,hsDirOpt,funTotalsOpt - , altHighlightOpt -#if __GLASGOW_HASKELL__ >= 604 - , destDirOpt -#endif - ] +markup_options + = excludeOpt + . includeOpt + . srcDirOpt + . hpcDirOpt + . funTotalsOpt + . altHighlightOpt + . destDirOpt markup_plugin = Plugin { name = "markup" , usage = "[OPTION] .. <TIX_FILE> [<MODULE> [<MODULE> ..]]" @@ -45,16 +47,14 @@ markup_main flags (prog:modNames) = do `Set.union` includeMods flags } let Flags - { hpcDirs = hpcDirs - , hsDirs = theHsPath - , funTotals = theFunTotals + { funTotals = theFunTotals , altHighlight = invertOutput , destDir = dest_dir } = hpcflags1 mtix <- readTix (getTixFileName prog) Tix tixs <- case mtix of - Nothing -> error $ "unable to find tix file for: " ++ prog + Nothing -> hpcError markup_plugin $ "unable to find tix file for: " ++ prog Just a -> return a #if __GLASGOW_HASKELL__ >= 604 @@ -63,7 +63,7 @@ markup_main flags (prog:modNames) = do #endif mods <- - sequence [ genHtmlFromMod dest_dir hpcDirs tix theFunTotals theHsPath invertOutput + sequence [ genHtmlFromMod dest_dir hpcflags1 tix theFunTotals invertOutput | tix <- tixs , allowModule hpcflags1 (tixModuleName tix) ] @@ -130,20 +130,20 @@ markup_main flags (prog:modNames) = do (percent (expTicked s1) (expTotal s1)) -markup_main flags [] = error $ "no .tix file or executable name specified" +markup_main flags [] = hpcError markup_plugin $ "no .tix file or executable name specified" genHtmlFromMod :: String - -> [FilePath] + -> Flags -> TixModule -> Bool - -> [String] -> Bool -> IO (String, [Char], ModuleSummary) -genHtmlFromMod dest_dir hpcDirs tix theFunTotals theHsPath invertOutput = do +genHtmlFromMod dest_dir flags tix theFunTotals invertOutput = do + let theHsPath = srcDirs flags let modName0 = tixModuleName tix - (Mix origFile _ mixHash tabStop mix') <- readMix hpcDirs modName0 + (Mix origFile _ mixHash tabStop mix') <- readMixWithFlags flags modName0 let arr_tix :: Array Int Integer arr_tix = listArray (0,length (tixModuleTixs tix) - 1) @@ -457,7 +457,8 @@ readFileFromPath filename@('/':_) _ = readFile filename readFileFromPath filename path0 = readTheFile path0 where readTheFile :: [String] -> IO String - readTheFile [] = error $ "could not find " ++ show filename + readTheFile [] = hpcError markup_plugin + $ "could not find " ++ show filename ++ " in path " ++ show path0 readTheFile (dir:dirs) = catch (do str <- readFile (dir ++ "/" ++ filename) |