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