From cc41e1628546dfe76a5c94ebbe5ea7e363631176 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Tue, 12 Jan 2010 07:02:36 +0000 Subject: 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 --- Setup.hs | 36 +++++++++++++++++++++++------------- 1 file changed, 23 insertions(+), 13 deletions(-) (limited to 'Setup.hs') diff --git a/Setup.hs b/Setup.hs index 4aeea1ff7..0f9d5ac28 100644 --- a/Setup.hs +++ b/Setup.hs @@ -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) -- cgit v1.2.3