From 9ffd1babc7db537b5cc254674999bc3da567e070 Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 1 Jul 2015 18:01:21 -0700 Subject: Install man pages as part of cabal 'copy' phase. --- Setup.hs | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'Setup.hs') diff --git a/Setup.hs b/Setup.hs index 03e3248ef..c72e5b10b 100644 --- a/Setup.hs +++ b/Setup.hs @@ -18,11 +18,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA import Distribution.Simple import Distribution.Simple.PreProcess +import Distribution.Simple.InstallDirs (mandir) import Distribution.PackageDescription (PackageDescription(..), Executable(..)) import System.Process ( rawSystem ) import System.FilePath ( () ) import System.Directory ( findExecutable ) -import Distribution.Simple.Utils (info, rawSystemExit) +import Distribution.Simple.Utils (info, notice, rawSystemExit, installOrdinaryFile) import Distribution.Simple.Setup import Distribution.Simple.LocalBuildInfo import Distribution.Verbosity @@ -32,7 +33,11 @@ main = defaultMainWithHooks $ simpleUserHooks { -- enable hsb2hs preprocessor for .hsb files hookedPreProcessors = [ppBlobSuffixHandler] , postBuild = \args bf pkgdescr lbi -> - makeManPages args bf pkgdescr lbi + makeManPage args bf pkgdescr lbi + + , postCopy = \_ flags pkg lbi -> + installManpage pkg lbi (fromFlag $ copyVerbosity flags) + NoCopyDest } ppBlobSuffixHandler :: PPSuffixHandler @@ -48,10 +53,10 @@ ppBlobSuffixHandler = ("hsb", \_ _ -> return () }) -makeManPages :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo - -> IO () -makeManPages _ bf _ LocalBuildInfo{buildDir=buildDir} - = do info verbosity "Creating data/pandoc.1" +makeManPage :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo + -> IO () +makeManPage _ bf _ LocalBuildInfo{buildDir=buildDir} + = do notice verbosity "Creating man/pandoc.1" rawSystemExit verbosity progPath args where verbosity = fromFlagOrDefault normal $ buildVerbosity bf progPath = buildDir "pandoc" "pandoc" @@ -60,5 +65,12 @@ makeManPages _ bf _ LocalBuildInfo{buildDir=buildDir} "--filter", "man/capitalizeHeaders.hs", "--filter", "man/removeNotes.hs", "--filter", "man/removeLinks.hs", - "-o", "data/pandoc.1"] + "-o", "man/pandoc.1"] +installManpage :: PackageDescription -> LocalBuildInfo + -> Verbosity -> CopyDest -> IO () +installManpage pkg lbi verbosity copy = do + let mandest = mandir (absoluteInstallDirs pkg lbi copy) + "man1" "pandoc.1" + notice verbosity $ "Copying man page to " ++ mandest + installOrdinaryFile verbosity ("man" "pandoc.1") mandest -- cgit v1.2.3