Copyright | (c) 2020 berberman |
---|---|
License | MIT |
Maintainer | berberman <1793913507@qq.com> |
Stability | experimental |
Portability | portable |
Safe Haskell | None |
Language | Haskell2010 |
This module provides functions operating with HackageDB
and GenericPackageDescription
.
Synopsis
- lookupHackagePath :: IO FilePath
- loadHackageDB :: FilePath -> IO HackageDB
- insertDB :: GenericPackageDescription -> HackageDB -> HackageDB
- parseCabalFile :: FilePath -> IO GenericPackageDescription
- getLatestCabal :: Members [HackageEnv, WithMyErr] r => PackageName -> Sem r GenericPackageDescription
- getCabal :: Members [HackageEnv, WithMyErr] r => PackageName -> Version -> Sem r GenericPackageDescription
- getPackageFlag :: Members [HackageEnv, WithMyErr] r => PackageName -> Sem r [Flag]
- traverseHackage :: (Member HackageEnv r, Applicative f) => ((PackageName, GenericPackageDescription) -> f b) -> Sem r (f [b])
Documentation
lookupHackagePath :: IO FilePath Source #
Look up hackage tarball path from ~/.cabal
.
Arbitrary hackage mirror is potential to be selected.
Preferred to 01-index.tar
, whereas fallback to 00-index.tar
.
insertDB :: GenericPackageDescription -> HackageDB -> HackageDB Source #
Insert a GenericPackageDescription
into HackageDB
.
parseCabalFile :: FilePath -> IO GenericPackageDescription Source #
Read and parse .cabal
file.
getLatestCabal :: Members [HackageEnv, WithMyErr] r => PackageName -> Sem r GenericPackageDescription Source #
Get the latest GenericPackageDescription
.
getCabal :: Members [HackageEnv, WithMyErr] r => PackageName -> Version -> Sem r GenericPackageDescription Source #
Get GenericPackageDescription
with a specific version.
getPackageFlag :: Members [HackageEnv, WithMyErr] r => PackageName -> Sem r [Flag] Source #
Get flags of a package.
traverseHackage :: (Member HackageEnv r, Applicative f) => ((PackageName, GenericPackageDescription) -> f b) -> Sem r (f [b]) Source #
Traverse hackage packages.