@@ -18,11 +18,12 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
1818
1919import Distribution.Simple
2020import Distribution.Simple.PreProcess
21+import Distribution.Simple.InstallDirs (mandir)
2122import Distribution.PackageDescription (PackageDescription(..), Executable(..))
2223import System.Process ( rawSystem )
2324import System.FilePath ( (</>) )
2425import System.Directory ( findExecutable )
25−import Distribution.Simple.Utils (info, rawSystemExit)
26+import Distribution.Simple.Utils (info, notice, rawSystemExit, installOrdinaryFile)
2627import Distribution.Simple.Setup
2728import Distribution.Simple.LocalBuildInfo
2829import Distribution.Verbosity
@@ -32,7 +33,11 @@ main = defaultMainWithHooks $ simpleUserHooks {
3233 -- enable hsb2hs preprocessor for .hsb files
3334 hookedPreProcessors = [ppBlobSuffixHandler]
3435 , postBuild = \args bf pkgdescr lbi ->
35− makeManPages args bf pkgdescr lbi
36+ makeManPage args bf pkgdescr lbi
37+
38+ , postCopy = \_ flags pkg lbi ->
39+ installManpage pkg lbi (fromFlag $ copyVerbosity flags)
40+ NoCopyDest
3641 }
3742
3843ppBlobSuffixHandler :: PPSuffixHandler
@@ -48,10 +53,10 @@ ppBlobSuffixHandler = ("hsb", \_ _ ->
4853 return ()
4954 })
5055
51−makeManPages :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo
52− -> IO ()
53−makeManPages _ bf _ LocalBuildInfo{buildDir=buildDir}
54− = do info verbosity "Creating data/pandoc.1"
56+makeManPage :: Args -> BuildFlags -> PackageDescription -> LocalBuildInfo
57+ -> IO ()
58+makeManPage _ bf _ LocalBuildInfo{buildDir=buildDir}
59+ = do notice verbosity "Creating man/pandoc.1"
5560 rawSystemExit verbosity progPath args
5661 where verbosity = fromFlagOrDefault normal $ buildVerbosity bf
5762 progPath = buildDir </> "pandoc" </> "pandoc"
@@ -60,5 +65,12 @@ makeManPages _ bf _ LocalBuildInfo{buildDir=buildDir}
6065 "--filter", "man/capitalizeHeaders.hs",
6166 "--filter", "man/removeNotes.hs",
6267 "--filter", "man/removeLinks.hs",
63− "-o", "data/pandoc.1"]
68+ "-o", "man/pandoc.1"]
6469
70+installManpage :: PackageDescription -> LocalBuildInfo
71+ -> Verbosity -> CopyDest -> IO ()
72+installManpage pkg lbi verbosity copy = do
73+ let mandest = mandir (absoluteInstallDirs pkg lbi copy) </>
74+ "man1" </> "pandoc.1"
75+ notice verbosity $ "Copying man page to " ++ mandest
76+ installOrdinaryFile verbosity ("man" </> "pandoc.1") mandest