Change format of cabalMap to the new hackage format
[darcs-mirror-hpvt.git] / CabalDebianMap.hs
1 module CabalDebianMap (outputCabalDebianMap) where
2
3 import qualified Data.Map as M
4 import Data.Maybe
5 import Data.List
6 import Data.Function
7 import Text.Printf
8
9 import Types
10 import Utils
11
12
13 outputCabalDebianMap :: (Show k) =>  M.Map k (Maybe Version, Maybe Version, Maybe Version, Maybe Version, Maybe Version) ->  String
14 outputCabalDebianMap = unlines . mapMaybe toLine . M.toList
15   where toLine (pkg,(h,v1,v2,v3,v4)) =
16                 if null vs
17                 then Nothing
18                 else Just (printf "%s,%s,%s"
19                         (show (show pkg))
20                         (show (upstream (version dv)))
21                         (show (url dv)))
22             where vs = catMaybes [v1,v2,v3,v4]
23                   dv = maximumBy (compare `on` version) vs