mirror of
https://github.com/jgm/pandoc.git
synced 2026-08-26 10:16:32 +00:00
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
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user