diff options
author | Joey Hess <joey@kitenet.net> | 2012-09-01 15:20:45 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-09-01 15:20:45 -0400 |
commit | 87b9da70e6436bda534425b82553972c55208ac2 (patch) | |
tree | d46ebad4cf997ee0cd513d0a234a013e05c445a4 | |
parent | 10a48da98805df4f903853c40c8c7dd7ff33b3be (diff) |
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.
-rw-r--r-- | Setup.hs | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -9,6 +9,9 @@ import Distribution.Simple.Utils (installOrdinaryFiles, rawSystemExit) import Distribution.PackageDescription (PackageDescription(..)) import Distribution.Verbosity (Verbosity) import System.FilePath +import Control.Applicative +import Control.Monad +import System.Directory import qualified Build.InstallDesktopFile as InstallDesktopFile import qualified Build.Configure as Configure @@ -38,15 +41,18 @@ installGitAnnexShell copyDest verbosity pkg lbi = where dstBinDir = bindir $ absoluteInstallDirs pkg lbi copyDest --- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages. --- --- Based on pandoc's Setup.hs. +{- See http://www.haskell.org/haskellwiki/Cabal/Developer-FAQ#Installing_manpages + - + - 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 pkg lbi = - installOrdinaryFiles verbosity dstManDir srcManpages + installOrdinaryFiles verbosity dstManDir =<< srcManpages where dstManDir = mandir (absoluteInstallDirs pkg lbi copyDest) </> "man1" - srcManpages = zip (repeat srcManDir) manpages + srcManpages = zip (repeat srcManDir) + <$> filterM doesFileExist manpages srcManDir = "" manpages = ["git-annex.1", "git-annex-shell.1"] |