diff options
author | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2010-01-12 07:02:36 +0000 |
---|---|---|
committer | fiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b> | 2010-01-12 07:02:36 +0000 |
commit | cc41e1628546dfe76a5c94ebbe5ea7e363631176 (patch) | |
tree | 1c5977c5d3ac223c242a14d8d3425ec464d70488 | |
parent | 48c240de2d5ca24f844d17a426b509bfc13e877c (diff) | |
download | pandoc-cc41e1628546dfe76a5c94ebbe5ea7e363631176.tar.gz |
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
-rw-r--r-- | Setup.hs | 36 |
1 files changed, 23 insertions, 13 deletions
@@ -1,11 +1,12 @@ import Distribution.Simple import Distribution.Simple.Setup (copyDest, copyVerbosity, fromFlag, installVerbosity) -import Distribution.PackageDescription ( PackageDescription ) +import Distribution.PackageDescription + ( PackageDescription(..), Executable(..), BuildInfo(..) ) import Distribution.Simple.LocalBuildInfo ( LocalBuildInfo(..), absoluteInstallDirs ) import Distribution.Verbosity ( Verbosity ) -import Distribution.Simple.InstallDirs (mandir, CopyDest (NoCopyDest)) +import Distribution.Simple.InstallDirs (mandir, bindir, CopyDest (NoCopyDest)) import Distribution.Simple.Utils (copyFiles) import Control.Exception ( bracket_ ) import Control.Monad ( unless ) @@ -17,17 +18,20 @@ import System.Exit import System.Time import System.IO.Error ( isDoesNotExistError ) import Data.Maybe ( fromJust, isNothing, catMaybes ) -import Data.List ( isInfixOf ) +import Data.List ( isInfixOf, (\\) ) main = do defaultMainWithHooks $ simpleUserHooks { runTests = runTestSuite , postBuild = makeManPages - , postCopy = \ _ flags pkg lbi -> installManpages pkg lbi - (fromFlag $ copyVerbosity flags) - (fromFlag $ copyDest flags) - , postInst = \ _ flags pkg lbi -> installManpages pkg lbi - (fromFlag $ installVerbosity flags) NoCopyDest + , postCopy = \ _ flags pkg lbi -> do + installManpages pkg lbi (fromFlag $ copyVerbosity flags) + (fromFlag $ copyDest flags) + installScripts pkg lbi (fromFlag $ copyVerbosity flags) + (fromFlag $ copyDest flags) + , postInst = \ _ flags pkg lbi -> do + installManpages pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest + installScripts pkg lbi (fromFlag $ installVerbosity flags) NoCopyDest } exitWith ExitSuccess @@ -67,12 +71,18 @@ makeManPage manpage = do _ -> do putStrLn $ "Error creating " ++ manDir </> manpage exitWith ec -installManpages pkg lbi verbosity copy = - mapM_ (installManpage pkg lbi verbosity copy) manpages +installScripts :: PackageDescription -> LocalBuildInfo + -> Verbosity -> CopyDest -> IO () +installScripts pkg lbi verbosity copy = + copyFiles verbosity (bindir (absoluteInstallDirs pkg lbi copy)) + (zip (repeat ".") (wrappers \\ exes)) + where exes = map exeName $ filter isBuildable $ executables pkg + isBuildable = buildable . buildInfo + wrappers = ["html2markdown", "hsmarkdown", "markdown2pdf"] -installManpage :: PackageDescription -> LocalBuildInfo - -> Verbosity -> CopyDest -> FilePath -> IO () -installManpage pkg lbi verbosity copy manpage = +installManpages :: PackageDescription -> LocalBuildInfo + -> Verbosity -> CopyDest -> IO () +installManpages pkg lbi verbosity copy = copyFiles verbosity (mandir (absoluteInstallDirs pkg lbi copy) </> "man1") (zip (repeat manDir) manpages) |