packages feed

cabal-db 0.1.2 → 0.1.3

raw patch · 2 files changed

+20/−6 lines, 2 files

Files

Src/Main.hs view
@@ -50,7 +50,7 @@     ,"vector"     ,"xhtml"     ,"zlib"-    ] ++ -- not stricly platform package, but ask as such+    ] ++ -- not stricly platform package, but act as such     ["GHC"     ,"Cabal"     ,"ghc-prim"@@ -100,13 +100,27 @@  getPackageVersions :: AvailablePackages -> PackageName -> Maybe [Ver] getPackageVersions (AvailablePackages apkgs) pn =-    sort . map fst <$> M.lookup pn apkgs+    sortVers . map fst <$> M.lookup pn apkgs +-- | sort versions, lowest first+sortVers :: [Ver] -> [Ver]+sortVers = sortBy compareVer+  where compareVer v1 v2 =+            case (break (== '.') v1, break (== '.') v2) of+                (("",_),("",_))   -> EQ+                (("",_),_)        -> LT+                (_,("",_))        -> GT+                ((i1,r1),(i2,r2)) | i1 == i2  -> compareVer (dropDot r1) (dropDot r2)+                                  | otherwise -> compare (read i1 :: Int) (read i2)+        dropDot s | s == []       = s+                  | head s == '.' = drop 1 s+                  | otherwise     = s+ getPackageDescription :: AvailablePackages -> PackageName -> Maybe Ver -> Maybe GenericPackageDescription getPackageDescription (AvailablePackages apkgs) pn mver =     M.lookup pn apkgs >>= resolveVer mver >>= packageDescOfBS-    where resolveVer Nothing pdescs  = lookup (maximum $ map fst pdescs) pdescs-          resolveVer (Just v) pdescs = lookup v pdescs+  where resolveVer Nothing pdescs  = lookup (last $ sortVers $ map fst pdescs) pdescs+        resolveVer (Just v) pdescs = lookup v pdescs  foldallLatest :: Monad m => AvailablePackages -> a -> (a -> PackageName -> PackageDescription -> m a) -> m a foldallLatest apkgs acc f = foldM process acc (getAllPackageName apkgs)@@ -278,7 +292,7 @@                 putStrLn (show arg)                 putStrLn ("  synopsis: " ++ synopsis d)                 putStrLn ("  versions: " ++ intercalate ", " vers)-                putStrLn ("  dependencies:")+                putStrLn ("  dependencies for " ++ (last vers) ++ ":")                 mapM_ (\(Dependency p v) -> putStrLn ("    " ++ unPackageName p ++ " (" ++ showVerconstr v ++ ")")) (buildDepends d)             _                  -> error "cannot resolve package" 
cabal-db.cabal view
@@ -1,5 +1,5 @@ Name:                cabal-db-Version:             0.1.2+Version:             0.1.3 Synopsis:            cabal-db Description:         cabal-db License:             BSD3