1
1
mirror of https://github.com/sol/hpack.git synced 2024-10-04 11:47:15 +03:00

Refactoring

This commit is contained in:
Simon Hengel 2018-09-08 07:39:15 +08:00
parent 132d92ce64
commit 8ce93f8741

View File

@ -45,25 +45,25 @@ instance FromValue BuildTools where
, parseKey = nameToBuildTool
}
nameToBuildTool :: Text -> ParseBuildTool
nameToBuildTool (T.unpack -> name) = case break (== ':') name of
(executable, "") -> UnqualifiedBuildTool executable
(package, executable) -> QualifiedBuildTool package (drop 1 executable)
nameToBuildTool :: Text -> ParseBuildTool
nameToBuildTool (T.unpack -> name) = case break (== ':') name of
(executable, "") -> UnqualifiedBuildTool executable
(package, executable) -> QualifiedBuildTool package (drop 1 executable)
buildToolFromString :: Text -> Parser (ParseBuildTool, DependencyVersion)
buildToolFromString s = parseQualifiedBuildTool s <|> parseUnqualifiedBuildTool s
buildToolFromString :: Text -> Parser (ParseBuildTool, DependencyVersion)
buildToolFromString s = parseQualifiedBuildTool s <|> parseUnqualifiedBuildTool s
parseQualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)
parseQualifiedBuildTool = fmap f . cabalParse "build tool" . T.unpack
where
f :: D.ExeDependency -> (ParseBuildTool, DependencyVersion)
f (D.ExeDependency package executable version) = (
QualifiedBuildTool (D.unPackageName package) (D.unUnqualComponentName executable)
, VersionConstraint $ versionConstraintFromCabal version
)
parseQualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)
parseQualifiedBuildTool = fmap f . cabalParse "build tool" . T.unpack
where
f :: D.ExeDependency -> (ParseBuildTool, DependencyVersion)
f (D.ExeDependency package executable version) = (
QualifiedBuildTool (D.unPackageName package) (D.unUnqualComponentName executable)
, VersionConstraint $ versionConstraintFromCabal version
)
parseUnqualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)
parseUnqualifiedBuildTool = fmap (first UnqualifiedBuildTool) . parseDependency "build tool"
parseUnqualifiedBuildTool :: Monad m => Text -> m (ParseBuildTool, DependencyVersion)
parseUnqualifiedBuildTool = fmap (first UnqualifiedBuildTool) . parseDependency "build tool"
newtype SystemBuildTools = SystemBuildTools {
unSystemBuildTools :: Map String DependencyVersion
@ -80,11 +80,11 @@ instance FromValue SystemBuildTools where
, parseKey = T.unpack
}
parseSystemBuildTool :: Monad m => Text -> m (String, DependencyVersion)
parseSystemBuildTool = fmap fromCabal . parseCabalBuildTool . T.unpack
where
fromCabal :: D.LegacyExeDependency -> (String, DependencyVersion)
fromCabal (D.LegacyExeDependency name version) = (name, VersionConstraint $ versionConstraintFromCabal version)
parseSystemBuildTool :: Monad m => Text -> m (String, DependencyVersion)
parseSystemBuildTool = fmap fromCabal . parseCabalBuildTool . T.unpack
where
fromCabal :: D.LegacyExeDependency -> (String, DependencyVersion)
fromCabal (D.LegacyExeDependency name version) = (name, VersionConstraint $ versionConstraintFromCabal version)
parseCabalBuildTool :: Monad m => String -> m D.LegacyExeDependency
parseCabalBuildTool = cabalParse "system build tool"
parseCabalBuildTool :: Monad m => String -> m D.LegacyExeDependency
parseCabalBuildTool = cabalParse "system build tool"