Update platform repo URL
[darcs-mirror-hpvt.git] / Types.hs
1 module Types (PackageName, DistroInfo, fromHackage, fromDebian, fromCabal, Version(..)) where
2
3 import Data.Char
4 import qualified Data.Map as M
5
6 import qualified Distribution.Package as D
7
8 import Utils
9
10 type DistroInfo = M.Map PackageName Version
11
12 newtype PackageName = PN String
13 data Version = Version { version :: String, url :: URL} deriving (Eq)
14
15 instance Ord Version where
16         v1 `compare` v2 = version v1 `vCmp` version v2
17
18 type URL = String
19
20 instance Eq PackageName where
21         (PN n1) == (PN n2) = map toLower n1 == map toLower n2
22
23 instance Ord PackageName where
24         (PN n1) `compare` (PN n2) = map toLower n1 `compare` map toLower n2
25
26 instance Show PackageName where
27         show (PN n) = n
28
29 fromHackage = PN
30 fromDebian = PN
31 fromCabal (D.PackageName n) = PN n
32