cabal-install-2.2.0.0: Distribution/Client/SourceRepoParse.hs
module Distribution.Client.SourceRepoParse where
import Distribution.Client.Compat.Prelude
import Prelude ()
import Distribution.FieldGrammar.FieldDescrs (fieldDescrsToList)
import Distribution.PackageDescription.FieldGrammar (sourceRepoFieldGrammar)
import Distribution.Parsec.Class (explicitEitherParsec)
import Distribution.ParseUtils (FieldDescr (..), syntaxError)
import Distribution.Types.SourceRepo (SourceRepo, RepoKind (..))
sourceRepoFieldDescrs :: [FieldDescr SourceRepo]
sourceRepoFieldDescrs =
map toDescr . fieldDescrsToList $ sourceRepoFieldGrammar (RepoKindUnknown "unused")
where
toDescr (name, pretty, parse) = FieldDescr
{ fieldName = name
, fieldGet = pretty
, fieldSet = \lineNo str x ->
either (syntaxError lineNo) return
$ explicitEitherParsec (parse x) str
}