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