Safe Haskell | None |
---|---|
Language | Haskell2010 |
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 :: !TreatLikeExtraDep
- data SimpleTarget
- data NeedTargets
- parseRawTarget :: Text -> Maybe (RawTarget HasIdents)
- parseTargets :: (MonadCatch 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
data RawTarget a where Source #
Raw command line input, without checking against any databases or list of locals. Does not deal with directories
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
LocalPackageView | |
|
data SimpleTarget Source #
Parsers
parseRawTarget :: Text -> Maybe (RawTarget HasIdents) Source #
If this function returns Nothing
, the input should be treated as a
directory.
:: (MonadCatch 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) |