module Main where -- Cabal import Distribution.Simple import Distribution.Simple.Setup ( fromFlag, HaddockFlags(..) ) import Distribution.Simple.LocalBuildInfo ( LocalBuildInfo(..) ) import Distribution.Simple.BuildPaths ( haddockPref ) import Distribution.Simple.Utils ( setupMessage ) import Distribution.PackageDescription import Distribution.Verbosity -- Base import System.FilePath (()) import System.Directory(copyFile) main :: IO () main = defaultMainWithHooks myHooks where -- also install additional HTML documentation myHooks = simpleUserHooks { postHaddock = myDocs } -- cobbled together from the source of Distribution.Simple.Haddock myDocs _ flags pkg_descr lbi = do let verbosity = fromFlag (haddockVerbosity flags) let distPref = fromFlag (haddockDistPref flags) let target = haddockPref distPref pkg_descr "Documentation.html" let srcFiles = extraSrcFiles $ localPkgDescr $ lbi let source = buildDir lbi "doc" "Documentation.html" setupMessage verbosity "Installing extra documentation for" $ packageId pkg_descr putStrLn (concat srcFiles) -- copyFile source target