hackage-db: access Hackage's package database via Data.Map

[ bsd3, distribution, library ] [ Propose Tags ]

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
Versions [RSS] [faq] 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 (info)
Dependencies base (>=3 && <5), bytestring, Cabal (<2.2), containers, directory, filepath, tar (>=0.4), utf8-string [details]
License BSD-3-Clause
Copyright Peter Simons
Author Peter Simons <simons@cryp.to>
Maintainer Peter Simons <simons@cryp.to>
Revised Revision 2 made by PeterSimons at 2019-09-22T19:34:35Z
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 2015-01-15T20:31:34Z
Distributions Arch:2.1.1, LTSHaskell:2.1.2, NixOS:2.1.2, Stackage:2.1.2
Downloads 16678 total (98 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2015-01-15 [all 1 reports]

Modules

[Index]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Candidates