summaryrefslogtreecommitdiff
path: root/Setup.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Setup.hs')
-rw-r--r--Setup.hs40
1 files changed, 31 insertions, 9 deletions
diff --git a/Setup.hs b/Setup.hs
index c36d6e4fe..80d23cc87 100644
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,27 +1,49 @@
+{-# LANGUAGE NamedFieldPuns #-}
+
{- cabal setup file -}
import Distribution.Simple
import Distribution.Simple.LocalBuildInfo
import Distribution.Simple.Setup
-import System.Cmd
+import Distribution.Simple.Utils (installOrdinaryFiles, rawSystemExit)
+import Distribution.PackageDescription (PackageDescription(..))
+import Distribution.Verbosity (Verbosity)
import System.FilePath
import qualified Build.Configure as Configure
main = defaultMainWithHooks simpleUserHooks
{ preConf = configure
- , instHook = install
+ , postInst = myPostInst
}
configure _ _ = do
Configure.run Configure.tests
return (Nothing, [])
-install pkg_descr lbi userhooks flags = do
- r <- (instHook simpleUserHooks) pkg_descr lbi userhooks flags
- _ <- rawSystem "ln" ["-sf", "git-annex",
- bindir installDirs </> "git-annex-shell"]
- return r
+myPostInst :: Args -> InstallFlags -> PackageDescription -> LocalBuildInfo -> IO ()
+myPostInst _ (InstallFlags { installVerbosity }) pkg lbi = do
+ installGitAnnexShell dest verbosity pkg lbi
+ installManpages dest verbosity pkg lbi
+ where
+ dest = NoCopyDest
+ verbosity = fromFlag installVerbosity
+
+installGitAnnexShell :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
+installGitAnnexShell copyDest verbosity pkg lbi =
+ rawSystemExit verbosity "ln"
+ ["-sf", "git-annex", dstBinDir </> "git-annex-shell"]
+ where
+ dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest
+
+-- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages.
+--
+-- Based on pandoc's Setup.hs.
+installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
+installManpages copyDest verbosity pkg lbi =
+ installOrdinaryFiles verbosity dstManDir srcManpages
where
- installDirs = absoluteInstallDirs pkg_descr lbi $
- fromFlag (copyDest defaultCopyFlags)
+ dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1"
+ srcManpages = zip (repeat srcManDir) manpages
+ srcManDir = ""
+ manpages = ["git-annex.1", "git-annex-shell.1"]