cabal-db 0.1.2 → 0.1.3
raw patch · 2 files changed
+20/−6 lines, 2 files
Files
- Src/Main.hs +19/−5
- cabal-db.cabal +1/−1
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