| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Stack.Build.Target
Description
Parsing command line targets
- type ComponentName = Text
- data UnresolvedComponent
- data RawTarget a where
- RTPackageComponent :: !PackageName -> !UnresolvedComponent -> RawTarget a
- RTComponent :: !ComponentName -> RawTarget a
- RTPackage :: !PackageName -> RawTarget a
- RTPackageIdentifier :: !PackageIdentifier -> RawTarget HasIdents
- data LocalPackageView = LocalPackageView {
- lpvVersion :: !Version
- lpvRoot :: !(Path Abs Dir)
- lpvCabalFP :: !(Path Abs File)
- lpvComponents :: !(Set NamedComponent)
- lpvExtraDep :: !Bool
- data SimpleTarget
- data NeedTargets
- parseRawTarget :: Text -> Maybe (RawTarget HasIdents)
- parseTargets :: (MonadThrow m, MonadIO m) => NeedTargets -> Bool -> Map PackageName Version -> Map PackageName Version -> Map PackageName LocalPackageView -> Path Abs Dir -> [Text] -> m (Map PackageName Version, Map PackageName SimpleTarget)
Types
type ComponentName = Text Source
The name of a component, which applies to executables, test suites, and benchmarks
data UnresolvedComponent Source
Either a fully resolved component, or a component name that could be either an executable, test, or benchmark
Constructors
| ResolvedComponent !NamedComponent | |
| UnresolvedComponent !ComponentName |
Raw command line input, without checking against any databases or list of locals. Does not deal with directories
Constructors
| RTPackageComponent :: !PackageName -> !UnresolvedComponent -> RawTarget a | |
| RTComponent :: !ComponentName -> RawTarget a | |
| RTPackage :: !PackageName -> RawTarget a | |
| RTPackageIdentifier :: !PackageIdentifier -> RawTarget HasIdents |
data LocalPackageView Source
A view of a local package needed for resolving components
Constructors
| LocalPackageView | |
Fields
| |
data SimpleTarget Source
Constructors
| STUnknown | |
| STNonLocal | |
| STLocalComps !(Set NamedComponent) | |
| STLocalAll |
Instances
data NeedTargets Source
Need targets, e.g. `stack build` or allow none?
Constructors
| NeedTargets | |
| AllowNoTargets |
Parsers
parseRawTarget :: Text -> Maybe (RawTarget HasIdents) Source
If this function returns Nothing, the input should be treated as a
directory.
Arguments
| :: (MonadThrow m, MonadIO m) | |
| => NeedTargets | need at least one target |
| -> Bool | using implicit global project? |
| -> Map PackageName Version | snapshot |
| -> Map PackageName Version | extra deps |
| -> Map PackageName LocalPackageView | |
| -> Path Abs Dir | current directory |
| -> [Text] | command line targets |
| -> m (Map PackageName Version, Map PackageName SimpleTarget) |