hackage-db: provide access to the Hackage database via Data.Map
This module provides simple access to the Hackage database by means of Data.Map. Suppose you wanted to implement a utility that queries the set of available versions for a given package, the following program would do the trick:
import qualified Distribution.Hackage.DB as DB import Distribution.Text ( display ) import System.Environment ( getArgs ) main :: IO () main = do pkgs <- getArgs db <- DB.readHackage let getVersions name = maybe [] DB.keys (DB.lookup name db) mapM_ (putStrLn . unwords . map display . getVersions) pkgs
When run, it would produce the following output:
./a.out containers deepseq cabal-install 0.1.0.0 0.1.0.1 0.2.0.0 0.2.0.1 0.3.0.0 0.4.0.0 1.0.0.0 1.1.0.0 1.1.0.1 1.1.0.2 0.4.0 0.5.0 0.5.1 0.5.2 0.6.0 0.6.2 0.6.4 0.8.0 0.8.2 0.10.0 0.10.2
Note that once the database has been parsed, it can be accessed quickly, but the inital cost of reading 00-index.tar is fairly high.
Downloads
- hackage-db-1.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
| Versions [RSS] | 1.0, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 1.9.1, 1.10, 1.11, 1.22, 2.0, 2.0.1, 2.1.0, 2.1.1, 2.1.2, 2.1.3 (info) |
|---|---|
| Dependencies | base (>=3 && <5), bytestring, Cabal, containers, directory, filepath, tar [details] |
| Tested with | ghc ==6.12.3, ghc ==7.0.4, ghc ==7.2.1 |
| License | BSD-3-Clause |
| Copyright | Peter Simons |
| Author | Peter Simons <simons@cryp.to> |
| Maintainer | Peter Simons <simons@cryp.to> |
| Category | Distribution |
| Home page | http://github.com/peti/hackage-db |
| Source repo | head: git clone git://github.com/peti/hackage-db.git |
| Uploaded | by PeterSimons at 2011-08-24T21:57:35Z |
| Distributions | Arch:2.1.3, LTSHaskell:2.1.3, NixOS:2.1.3, Stackage:2.1.3 |
| Reverse Dependencies | 8 direct, 2 indirect [details] |
| Downloads | 20034 total (118 in the last 30 days) |
| Rating | (no votes yet) [estimated by Bayesian average] |
| Your Rating | |
| Status | Docs uploaded by user Build status unknown [no reports yet] |