module PFE_HTML where import Prelude hiding(putStrLn,writeFile) --import Maybe(fromJust) import Monad(when,unless) --import HsName(ModuleName(Module)) --import ScopeModule(scopeModule) import ConvRefsTypes(simplifyRefsTypes') import HLex2html(hlex2html') import HsLexerPass1(line,column) -- hmm import PFE0(findFile,newerThan,getCurrentModuleGraph,allModules,checkProject,moduleInfoPath) import PFE2(getModuleTime) import PFE3(parseSourceFile'') import PathUtils(normf) import DirUtils(getModificationTimeMaybe,optCreateDirectory) --import FileUtils(updateFile) import AbstractIO --import MUtils import PrettyPrint(pp) toHtmlFiles outDir srcURL modHTML optms = do ms <- maybe allModules return optms dir <- checkProject unless (null ms) $ optCreateDirectory (outDir dir) mapM_ (module2html dir) ms where module2html dir m = do let out_path = outDir dir++htmlFile m t_mod <- getModuleTime m t_html <- getModificationTimeMaybe out_path when (t_mod `newerThan` t_html) $ -- hmm!! do putStrLn $ "Updating: "++out_path writeFile out_path =<< file2html srcURL m file2html srcURL m = do path <- findFile m g <- getCurrentModuleGraph (ts,(_,rs0)) <- parseSourceFile'' path let rs = simplifyRefsTypes' rs0 ffm = (path,[(normf f,m)|(f,(m,_))<-g]) return (modHTML m (hlex2html' srcURL ffm (rs,ts))) -------------------------------------------------------------------------------- htmlFile m = moduleInfoPath m++".html" htmlDir dir = dir++"html/" --htmlPath m dir = htmldir dir++htmlFile m wwwDir dir = dir++"www/" --wwwPath m dir = wwwdir dir++htmlFile m --------------------------------------------------------------------------------