hackage-db-2.1.0: example/list-known-versions.hs
module Main ( main ) where
import Distribution.Hackage.DB.Path
import Distribution.Hackage.DB.Unparsed
import Control.Monad
import qualified Data.ByteString as BS
import Data.List as List
import Data.Map as Map
import Distribution.Text
main :: IO ()
main = do
db <- hackageTarball >>= readTarball Nothing
forM_ (toList db) $ \(pn, PackageData vr vs) -> do
let pref = if BS.null vr then "" else " (preferred: " ++ show vr ++ ")"
putStrLn $ display pn ++ ": " ++ intercalate ", " (fmap display (keys vs)) ++ pref