stack-0.1.0.0: The Haskell Tool Stack

Safe HaskellNone
LanguageHaskell2010

Stack.Package

Description

Dealing with Cabal.

Synopsis

Documentation

readPackage :: (MonadLogger m, MonadIO m, MonadThrow m, MonadCatch m) => PackageConfig -> Path Abs File -> m Package Source

Reads and exposes the package information

readPackageBS :: MonadThrow m => PackageConfig -> ByteString -> m Package Source

Reads and exposes the package information, from a ByteString

readPackageDir :: (MonadLogger m, MonadIO m, MonadThrow m, MonadCatch m) => PackageConfig -> Path Abs Dir -> m (Path Abs File, Package) Source

Convenience wrapper around readPackage that first finds the cabal file in the given directory.

readPackageUnresolved :: (MonadIO m, MonadThrow m) => Path Abs File -> m GenericPackageDescription Source

Read the raw, unresolved package information.

readPackageUnresolvedBS :: MonadThrow m => Maybe (Path Abs File) -> ByteString -> m GenericPackageDescription Source

Read the raw, unresolved package information from a ByteString.

resolvePackage :: PackageConfig -> GenericPackageDescription -> Package Source

Resolve a parsed cabal file into a Package.

getCabalFileName Source

Arguments

:: (MonadThrow m, MonadIO m) 
=> Path Abs Dir

package directory

-> m (Path Abs File) 

Get the filename for the cabal file in the given directory.

If no .cabal file is present, or more than one is present, an exception is thrown via throwM.

data Package Source

Some package info.

Constructors

Package 

Fields

packageName :: !PackageName

Name of the package.

packageVersion :: !Version

Version of the package

packageFiles :: !GetPackageFiles
 
packageDeps :: !(Map PackageName VersionRange)

Packages that the package depends on.

packageTools :: ![Dependency]

A build tool name.

packageAllDeps :: !(Set PackageName)

Original dependencies (not sieved).

packageFlags :: !(Map FlagName Bool)

Flags used on package.

packageHasLibrary :: !Bool

does the package have a buildable library stanza?

packageTests :: !(Set Text)

names of test suites

packageBenchmarks :: !(Set Text)

names of benchmarks

packageExes :: !(Set Text)

names of executables

packageOpts :: !GetPackageOpts

Args to pass to GHC.

packageHasExposedModules :: !Bool

Does the package have exposed modules?

packageSimpleType :: !Bool

Does the package of build-type: Simple

Instances

Eq Package

Compares the package name.

Ord Package

Compares the package name.

Show Package 
Typeable * Package 

newtype GetPackageFiles Source

Files that the package depends on, relative to package directory. Argument is the location of the .cabal file

Constructors

GetPackageFiles 

Fields

getPackageFiles :: forall m. (MonadIO m, MonadLogger m, MonadThrow m, MonadCatch m) => CabalFileType -> Path Abs File -> m (Set (Path Abs File))
 

newtype GetPackageOpts Source

Files that the package depends on, relative to package directory. Argument is the location of the .cabal file

Constructors

GetPackageOpts 

Fields

getPackageOpts :: forall env m. (MonadIO m, HasEnvConfig env, HasPlatform env, MonadThrow m, MonadReader env m) => Path Abs File -> m [String]
 

Instances

data PackageConfig Source

Package build configuration

Constructors

PackageConfig 

Fields

packageConfigEnableTests :: !Bool

Are tests enabled?

packageConfigEnableBenchmarks :: !Bool

Are benchmarks enabled?

packageConfigFlags :: !(Map FlagName Bool)

Package config flags.

packageConfigGhcVersion :: !Version

GHC version

packageConfigPlatform :: !Platform

host platform

buildLogPath :: (MonadReader env m, HasBuildConfig env, MonadThrow m) => Package -> m (Path Abs File) Source

Path for the package's build log.

data PackageException Source

All exceptions thrown by the library.

Constructors

PackageInvalidCabalFile (Maybe (Path Abs File)) PError 
PackageNoCabalFileFound (Path Abs Dir) 
PackageMultipleCabalFilesFound (Path Abs Dir) [Path Abs File] 
MismatchedCabalName (Path Abs File) PackageName 

resolvePackageDescription :: PackageConfig -> GenericPackageDescription -> PackageDescription Source

Get all dependencies of a package, including library, executables, tests, benchmarks.

packageToolDependencies :: PackageDescription -> Map ByteString VersionRange Source

Get all build tool dependencies of the package (buildable targets only).

packageDependencies :: PackageDescription -> Map PackageName VersionRange Source

Get all dependencies of the package (buildable targets only).

packageIdentifier :: Package -> PackageIdentifier Source

Get the identifier of the package.

data CabalFileType Source

Files to get for a cabal package.

Constructors

AllFiles 
Modules 

autogenDir :: Path Abs Dir -> Path Abs Dir Source

Make the autogen dir.