Portability | portable |
---|---|
Maintainer | cabal-devel@haskell.org |
Safe Haskell | Safe-Infered |
This defined parsers and partial pretty printers for the .cabal
format.
Some of the complexity in this module is due to the fact that we have to be
backwards compatible with old .cabal
files, so there's code to translate
into the newer structure.
- readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescription
- writePackageDescription :: FilePath -> PackageDescription -> IO ()
- parsePackageDescription :: String -> ParseResult GenericPackageDescription
- showPackageDescription :: PackageDescription -> String
- data ParseResult a
- = ParseFailed PError
- | ParseOk [PWarning] a
- data FieldDescr a = FieldDescr {}
- type LineNo = Int
- readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo
- parseHookedBuildInfo :: String -> ParseResult HookedBuildInfo
- writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()
- showHookedBuildInfo :: HookedBuildInfo -> String
- pkgDescrFieldDescrs :: [FieldDescr PackageDescription]
- libFieldDescrs :: [FieldDescr Library]
- executableFieldDescrs :: [FieldDescr Executable]
- binfoFieldDescrs :: [FieldDescr BuildInfo]
- sourceRepoFieldDescrs :: [FieldDescr SourceRepo]
- testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza]
- flagFieldDescrs :: [FieldDescr Flag]
Package descriptions
readPackageDescription :: Verbosity -> FilePath -> IO GenericPackageDescriptionSource
Parse the given package file.
writePackageDescription :: FilePath -> PackageDescription -> IO ()Source
parsePackageDescription :: String -> ParseResult GenericPackageDescriptionSource
Parses the given file into a GenericPackageDescription
.
In Cabal 1.2 the syntax for package descriptions was changed to a format with sections and possibly indented property descriptions.
Parsing
data ParseResult a Source
Monad ParseResult | |
Show a => Show (ParseResult a) |
data FieldDescr a Source
Field descriptor. The parameter a
parameterizes over where the field's
value is stored in.
Supplementary build information
writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()Source
testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza]Source