git.iko.soy/typeable/pandoc
on master help sign in
Setup.hs: Install wrapper scripts into cabal bin directory.

Also simplified installManpages. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1807 788f1e2b-df1e-0410-8736-df70ead52e1b

commitcc41e1628546dfe76a5c94ebbe5ea7e363631176 authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> dateTue 12 Jan 2010, 07:02 (17 years ago) parent48c240d
1 file changed+23−13
Setup.hs+23−13
Setup.hs+23−13
@@ -1,11 +1,12 @@
11import Distribution.Simple
22import Distribution.Simple.Setup
33 (copyDest, copyVerbosity, fromFlag, installVerbosity)
4−import Distribution.PackageDescription ( PackageDescription )
4+import Distribution.PackageDescription
5+ ( PackageDescription(..), Executable(..), BuildInfo(..) )
56import Distribution.Simple.LocalBuildInfo
67 ( LocalBuildInfo(..), absoluteInstallDirs )
78import Distribution.Verbosity ( Verbosity )
8−import Distribution.Simple.InstallDirs (mandir, CopyDest (NoCopyDest))
9+import Distribution.Simple.InstallDirs (mandir, bindir, CopyDest (NoCopyDest))
910import Distribution.Simple.Utils (copyFiles)
1011import Control.Exception ( bracket_ )
1112import Control.Monad ( unless )
@@ -17,17 +18,20 @@ import System.Exit
1718import System.Time
1819import System.IO.Error ( isDoesNotExistError )
1920import Data.Maybe ( fromJust, isNothing, catMaybes )
20−import Data.List ( isInfixOf )
21+import Data.List ( isInfixOf, (\\) )
2122
2223main = do
2324 defaultMainWithHooks $ simpleUserHooks {
2425 runTests = runTestSuite
2526 , 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
27+ , postCopy = \ _ flags pkg lbi -> do
28+ installManpages pkg lbi (fromFlag $ copyVerbosity flags)
29+ (fromFlag $ copyDest flags)
30+ installScripts pkg lbi (fromFlag $ copyVerbosity flags)
31+ (fromFlag $ copyDest flags)
32+ , postInst = \ _ flags pkg lbi -> do
33+ installManpages pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest
34+ installScripts pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest
3135 }
3236 exitWith ExitSuccess
3337
@@ -67,12 +71,18 @@ makeManPage manpage = do
6771 _ -> do putStrLn $ "Error creating " ++ manDir </> manpage
6872 exitWith ec
6973
70−installManpages pkg lbi verbosity copy =
71− mapM_ (installManpage pkg lbi verbosity copy) manpages
74+installScripts :: PackageDescription -> LocalBuildInfo
75+ -> Verbosity -> CopyDest -> IO ()
76+installScripts pkg lbi verbosity copy =
77+ copyFiles verbosity (bindir (absoluteInstallDirs pkg lbi copy))
78+ (zip (repeat ".") (wrappers \\ exes))
79+ where exes = map exeName $ filter isBuildable $ executables pkg
80+ isBuildable = buildable . buildInfo
81+ wrappers = ["html2markdown", "hsmarkdown", "markdown2pdf"]
7282
73−installManpage :: PackageDescription -> LocalBuildInfo
74− -> Verbosity -> CopyDest -> FilePath -> IO ()
75−installManpage pkg lbi verbosity copy manpage =
83+installManpages :: PackageDescription -> LocalBuildInfo
84+ -> Verbosity -> CopyDest -> IO ()
85+installManpages pkg lbi verbosity copy =
7686 copyFiles verbosity (mandir (absoluteInstallDirs pkg lbi copy) </> "man1")
7787 (zip (repeat manDir) manpages)
7888