packages feed

operational-0.1.0.0: Setup.hs

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