git.iko.soy/typeable/pandoc
on master help sign in
Setup.hs: install manpages to mandir.

Code borrowed from darcs. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1806 788f1e2b-df1e-0410-8736-df70ead52e1b

commit48c240de2d5ca24f844d17a426b509bfc13e877c authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateTue 12 Jan 2010, 07:02 (17 years ago) parentabd7363
1 file changed+33−4
Setup.hs+33−4
Setup.hs+33−4
@@ -1,4 +1,12 @@
11import Distribution.Simple
2+import Distribution.Simple.Setup
3+ (copyDest, copyVerbosity, fromFlag, installVerbosity)
4+import Distribution.PackageDescription ( PackageDescription )
5+import Distribution.Simple.LocalBuildInfo
6+ ( LocalBuildInfo(..), absoluteInstallDirs )
7+import Distribution.Verbosity ( Verbosity )
8+import Distribution.Simple.InstallDirs (mandir, CopyDest (NoCopyDest))
9+import Distribution.Simple.Utils (copyFiles)
210import Control.Exception ( bracket_ )
311import Control.Monad ( unless )
412import System.Process ( runCommand, runProcess, waitForProcess )
@@ -12,8 +20,15 @@ import Data.Maybe ( fromJust, isNothing, catMaybes )
1220import Data.List ( isInfixOf )
1321
1422main = do
15− defaultMainWithHooks $ simpleUserHooks { runTests = runTestSuite
16− , postBuild = makeManPages }
23+ defaultMainWithHooks $ simpleUserHooks {
24+ runTests = runTestSuite
25+ , postBuild = makeManPages
26+ , postCopy = \ _ flags pkg lbi -> installManpages pkg lbi
27+ (fromFlag $ copyVerbosity flags)
28+ (fromFlag $ copyDest flags)
29+ , postInst = \ _ flags pkg lbi -> installManpages pkg lbi
30+ (fromFlag $ installVerbosity flags) NoCopyDest
31+ }
1732 exitWith ExitSuccess
1833
1934-- | Run test suite.
@@ -29,11 +44,16 @@ runTestSuite _ _ _ _ = do
2944
3045-- | Build man pages from markdown sources in man/man1/.
3146makeManPages _ _ _ _ = do
32− mapM_ makeManPage ["pandoc.1", "hsmarkdown.1", "html2markdown.1", "markdown2pdf.1"]
47+ mapM_ makeManPage manpages
48+
49+manpages :: [FilePath]
50+manpages = ["pandoc.1", "hsmarkdown.1", "html2markdown.1", "markdown2pdf.1"]
51+
52+manDir :: FilePath
53+manDir = "man" </> "man1"
3354
3455-- | Build a man page from markdown source in man/man1.
3556makeManPage manpage = do
36− let manDir = "man" </> "man1"
3757 let pandoc = "dist" </> "build" </> "pandoc" </> "pandoc"
3858 let page = manDir </> manpage
3959 let source = manDir </> manpage <.> "md"
@@ -47,6 +67,15 @@ makeManPage manpage = do
4767 _ -> do putStrLn $ "Error creating " ++ manDir </> manpage
4868 exitWith ec
4969
70+installManpages pkg lbi verbosity copy =
71+ mapM_ (installManpage pkg lbi verbosity copy) manpages
72+
73+installManpage :: PackageDescription -> LocalBuildInfo
74+ -> Verbosity -> CopyDest -> FilePath -> IO ()
75+installManpage pkg lbi verbosity copy manpage =
76+ copyFiles verbosity (mandir (absoluteInstallDirs pkg lbi copy) </> "man1")
77+ (zip (repeat manDir) manpages)
78+
5079-- | Returns a list of 'dependencies' that have been modified after 'file'.
5180modifiedDependencies :: FilePath -> [FilePath] -> IO [FilePath]
5281modifiedDependencies file dependencies = do