avoid installing man pages when they do not exist

Man pages are shipped prebuilt in cabal tarball, but will not be available
when cloning git and running cabal install.
This commit is contained in:
Joey Hess 2012-09-01 15:20:45 -04:00
parent 10a48da988
commit 87b9da70e6

View file

@ -9,6 +9,9 @@ import Distribution.Simple.Utils (installOrdinaryFiles, rawSystemExit)
import Distribution.PackageDescription (PackageDescription(..)) import Distribution.PackageDescription (PackageDescription(..))
import Distribution.Verbosity (Verbosity) import Distribution.Verbosity (Verbosity)
import System.FilePath import System.FilePath
import Control.Applicative
import Control.Monad
import System.Directory
import qualified Build.InstallDesktopFile as InstallDesktopFile import qualified Build.InstallDesktopFile as InstallDesktopFile
import qualified Build.Configure as Configure import qualified Build.Configure as Configure
@ -38,15 +41,18 @@ installGitAnnexShell copyDest verbosity pkg lbi =
where where
dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest
-- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages. {- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages
-- -
-- Based on pandoc's Setup.hs. - Man pages are provided prebuilt in the tarball in cabal,
- but may not be available otherwise, in which case, skip installing them.
-}
installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO () installManpages :: CopyDest -> Verbosity -> PackageDescription -> LocalBuildInfo -> IO ()
installManpages copyDest verbosity pkg lbi = installManpages copyDest verbosity pkg lbi =
installOrdinaryFiles verbosity dstManDir srcManpages installOrdinaryFiles verbosity dstManDir =<< srcManpages
where where
dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1" dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1"
srcManpages = zip (repeat srcManDir) manpages srcManpages = zip (repeat srcManDir)
<$> filterM doesFileExist manpages
srcManDir = "" srcManDir = ""
manpages = ["git-annex.1", "git-annex-shell.1"] manpages = ["git-annex.1", "git-annex-shell.1"]