git.iko.soy/typeable/cabal2nix
on master help sign in
Cabal2Nix.hs: added --no-haddock option to disable generation of the Haddock documentation
commit86808737998781987b101afe28172744ca1b338a authorPeter Simons <simons@cryp.to> dateFri 12 Aug 2011, 13:32 (15 years ago) parent4a0f046
2 files changed+12−6
src/Cabal2Nix.hs+4−2 src/Cabal2Nix/Package.hs+8−4
src/Cabal2Nix.hs+4−2
@@ -22,7 +22,7 @@ readCabalFile path
2222 | "file://" `isPrefixOf` path = readCabalFile (drop 7 path)
2323 | otherwise = readFile path
2424
25−data CliOption = PrintHelp | SHA256 String | Maintainer String | Platform String
25+data CliOption = PrintHelp | SHA256 String | Maintainer String | Platform String | NoHaddock
2626 deriving (Eq)
2727
2828main :: IO ()
@@ -33,6 +33,7 @@ main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() -> do
3333 , Option [] ["sha256"] (ReqArg SHA256 "HASH") "sha256 hash of source tarball"
3434 , Option ['m'] ["maintainer"] (ReqArg Maintainer "MAINTAINER") "maintainer of this package (may be specified multiple times)"
3535 , Option ['p'] ["platform"] (ReqArg Platform "PLATFORM") "supported build platforms (may be specified multiple times)"
36+ , Option [] ["no-haddock"] (NoArg NoHaddock) "don't run Haddock when building this package"
3637 ]
3738
3839 usage :: String
@@ -58,6 +59,7 @@ main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() -> do
5859
5960 let uri = args
6061 hash = [ h | SHA256 h <- opts ]
62+ noHaddock = NoHaddock `elem` opts
6163 maintainers = [ m | Maintainer m <- opts ]
6264 platforms' = [ p | Platform p <- opts ]
6365 platforms
@@ -78,4 +80,4 @@ main = bracket (return ()) (\() -> hFlush stdout >> hFlush stderr) $ \() -> do
7880
7981 sha256 <- if null hash then hashPackage packageId else return (head hash)
8082
81− putStr (showNixPkg (cabal2nix cabal sha256 platforms maintainers))
83+ putStr (showNixPkg (cabal2nix cabal sha256 noHaddock platforms maintainers))
src/Cabal2Nix/Package.hs+8−4
@@ -2,7 +2,7 @@ module Cabal2Nix.Package
22 ( cabal2nix, showNixPkg
33 , PkgName, PkgVersion, PkgSHA256, PkgURL, PkgDescription, PkgLicense
44 , PkgIsLib, PkgIsExe, PkgDependencies, PkgBuildTools, PkgExtraLibs
5− , PkgPkgconfigDeps, PkgPlatforms, PkgMaintainers, Pkg(..)
5+ , PkgPkgconfigDeps, PkgPlatforms, PkgMaintainers, PkgNoHaddock, Pkg(..)
66 )
77 where
88
@@ -34,6 +34,7 @@ type PkgDependencies = [Dependency] -- [CondTree ConfVar [Dependency] ()]
3434type PkgBuildTools = [Dependency]
3535type PkgExtraLibs = [String]
3636type PkgPkgconfigDeps = [String]
37+type PkgNoHaddock = Bool
3738type PkgPlatforms = [String]
3839type PkgMaintainers = [String]
3940
@@ -49,13 +50,14 @@ data Pkg = Pkg PkgName
4950 PkgBuildTools
5051 PkgExtraLibs
5152 PkgPkgconfigDeps
53+ PkgNoHaddock
5254 PkgPlatforms
5355 PkgMaintainers
5456 deriving (Show)
5557
5658showNixPkg :: Pkg -> String
5759showNixPkg (Pkg name ver sha256 url desc lic isLib isExe deps
58− tools libs pcs platforms maintainers) =
60+ tools libs pcs noHaddock platforms maintainers) =
5961 render doc
6062 where
6163 doc = funargs (map text ("cabal" : pkgInputs)) $$
@@ -73,6 +75,7 @@ showNixPkg (Pkg name ver sha256 url desc lic isLib isExe deps
7375 listattr "buildTools" pkgBuildTools,
7476 listattr "extraLibraries" pkgLibs,
7577 listattr "pkgconfigDepends" pkgPCs,
78+ boolattr "noHaddock" noHaddock noHaddock,
7679 vcat [
7780 text "meta" <+> equals <+> lbrace,
7881 nest 2 $ vcat [
@@ -101,14 +104,15 @@ showNixPkg (Pkg name ver sha256 url desc lic isLib isExe deps
101104 pkgInputs = nub $ pkgLibs ++ pkgPCs ++ pkgBuildTools ++ pkgDeps
102105
103106
104−cabal2nix :: GenericPackageDescription -> PkgSHA256 -> PkgPlatforms -> PkgMaintainers -> Pkg
105−cabal2nix cabal sha256 platforms maintainers =
107+cabal2nix :: GenericPackageDescription -> PkgSHA256 -> PkgNoHaddock -> PkgPlatforms -> PkgMaintainers -> Pkg
108+cabal2nix cabal sha256 noHaddock platforms maintainers =
106109 Pkg pkgname pkgver sha256 url desc lic
107110 isLib isExe
108111 (buildDepends tpkg)
109112 tools
110113 libs
111114 pcs
115+ noHaddock
112116 [ if '.' `elem` p then p else "self.stdenv.lib.platforms." ++ p | p <- platforms ]
113117 [ if '.' `elem` m then m else "self.stdenv.lib.maintainers." ++ m | m <- maintainers ]
114118 where