Portability | portable |
---|---|
Maintainer | cabal-devel@haskell.org |
Safe Haskell | None |
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 {
- fieldName :: String
- fieldGet :: a -> Doc
- fieldSet :: LineNo -> String -> a -> ParseResult a
- 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 GenericPackageDescription
Parse the given package file.
writePackageDescription :: FilePath -> PackageDescription -> IO ()
parsePackageDescription :: String -> ParseResult GenericPackageDescription
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.
showPackageDescription :: PackageDescription -> String
Parsing
data ParseResult a
Monad ParseResult | |
Functor ParseResult | |
Applicative ParseResult | |
Show a => Show (ParseResult a) |
data FieldDescr a
Field descriptor. The parameter a
parameterizes over where the field's
value is stored in.
FieldDescr | |
|
type LineNo = Int
Supplementary build information
readHookedBuildInfo :: Verbosity -> FilePath -> IO HookedBuildInfo
parseHookedBuildInfo :: String -> ParseResult HookedBuildInfo
writeHookedBuildInfo :: FilePath -> HookedBuildInfo -> IO ()
showHookedBuildInfo :: HookedBuildInfo -> String
testSuiteFieldDescrs :: [FieldDescr TestSuiteStanza]