git.iko.soy/typeable/cabal2nix
on master help sign in
hackage2nix: constrain export list of HackageGit
d36b32aPeter Simons
hackage2nix/HackageGit.hs+5−5
@@ -1,7 +1,11 @@
1{-# LANGUAGE OverloadedStrings #-}
1{-# LANGUAGE OverloadedStrings #-}
2{-# LANGUAGE TemplateHaskell #-}
2{-# LANGUAGE TemplateHaskell #-}
3
3
4−module HackageGit where
4+module HackageGit
5+ ( Hackage, readHackage, readPackage, readPackageMeta
6+ , SHA256Hash, hashes
7+ )
8+ where
5
9
6import Control.Lens hiding ( (<.>) )
10import Control.Lens hiding ( (<.>) )
7import Control.Monad
11import Control.Monad
@@ -54,8 +58,6 @@ readPackage dirPrefix (PackageIdentifier name version) = do
54
58
55declareLenses [d|
59declareLenses [d|
56 data Meta = Meta { hashes :: Map String String
60 data Meta = Meta { hashes :: Map String String
57− , locations :: [String]
58− , pkgsize :: Int
59 }
61 }
60 deriving (Show)
62 deriving (Show)
61 |]
63 |]
@@ -63,8 +65,6 @@ declareLenses [d|
63instance FromJSON Meta where
65instance FromJSON Meta where
64 parseJSON (Object v) = Meta
66 parseJSON (Object v) = Meta
65 <$> v .: "package-hashes"
67 <$> v .: "package-hashes"
66− <*> v .: "package-locations"
67− <*> v .: "package-size"
68 parseJSON o = fail ("invalid Cabal metadata: " ++ show o)
68 parseJSON o = fail ("invalid Cabal metadata: " ++ show o)
69
69
70readPackageMeta :: FilePath -> PackageIdentifier -> IO Meta
70readPackageMeta :: FilePath -> PackageIdentifier -> IO Meta