packages feed

cblrepo 0.23.0 → 0.24.0

raw patch · 6 files changed

+49/−32 lines, 6 filesdep ~aeson

Dependency ranges changed: aeson

Files

cblrepo.cabal view
@@ -1,5 +1,5 @@ name: cblrepo-version: 0.23.0+version: 0.24.0 cabal-version: >= 1.23 license: OtherLicense license-file: LICENSE-2.0@@ -62,7 +62,7 @@                    Unixutils ==1.54.*,                    unix ==2.7.*,                    ansi-wl-pprint ==0.6.*,-                   aeson ==0.11.*,+                   aeson ==1.0.*,                    stringsearch ==0.3.*,                    optparse-applicative ==0.13.*,                    safe ==0.3.*,
src/Main.hs view
@@ -81,7 +81,9 @@  cmdUpgradesCmd = command "upgrades" (info (helper <*> cmdUpgradesOpts) (fullDesc <> progDesc "Check for packages that can be upgraded"))   where-    cmdUpgradesOpts = CmdUpgrades <$> switch (short 's' <> help "A shorter output suitable for scripting")+    cmdUpgradesOpts = CmdUpgrades+                      <$> switch (short 's' <> help "A shorter output suitable for scripting")+                      <*> switch (short 'x' <> help "Limit list to packages with new x-revision")  cmdListPkgsCmd = command "list" (info (helper <*> cmdListPkgsOpts) (fullDesc <> progDesc "List packages in repo"))   where
src/Upgrades.hs view
@@ -28,31 +28,35 @@ import Control.Monad.Reader import Data.Maybe import Distribution.Text-import Distribution.Version+import Distribution.Version hiding (thisVersion)  upgrades :: Command () upgrades = do-    db <- asks (dbFile . fst) >>= liftIO . readDb-    aD <- asks $ appDir . fst-    aCS <- asks $ idxStyle .optsCmd . fst-    cfg <- asks snd-    availPkgsNVers <- liftIO $ buildPkgVersions <$> readIndexFile aD (getIndexFileName cfg)-    let nonBasePkgs = filter (not . isBasePkg) db-        pkgsNVers = map (pkgName &&& pkgVersion &&& pkgXRev) nonBasePkgs-        outdated = filter-            (\ (p, vx) -> maybe False (> vx) (latestVersion availPkgsNVers p))-            pkgsNVers-        printer = if aCS-            then printOldShort-            else printOld-    liftIO $ mapM_ (printer availPkgsNVers) outdated+  db <- asks (dbFile . fst) >>= liftIO . readDb+  aD <- asks $ appDir . fst+  aCS <- asks $ idxStyle .optsCmd . fst+  xrevsOnly <- asks $ xrevs . optsCmd . fst+  cfg <- asks snd+  availPkgsNVers <- liftIO $ buildPkgVersions <$> readIndexFile aD (getIndexFileName cfg)+  let nonBasePkgs = filter (not . isBasePkg) db+      pkgsNVers = map (pkgName &&& pkgVersion &&& pkgXRev) nonBasePkgs+      filterFunc = if xrevsOnly+                   then (\ (p, (v, x)) -> maybe False (> x) (snd <$> thisVersion availPkgsNVers p v))+                   else (\ (p, vx) -> maybe False (> vx) (latestVersion availPkgsNVers p undefined))+      outdated = filter filterFunc pkgsNVers+      printer = if aCS+                then printNewShort+                else printUpgrades+  if xrevsOnly+    then liftIO $ mapM_ (printer thisVersion availPkgsNVers) outdated+    else liftIO $ mapM_ (printer latestVersion availPkgsNVers) outdated -printOld :: PkgVersions -> (String, (Version, Int)) -> IO ()-printOld avail (p, (v, x)) = putStrLn $ p ++ ": " ++ display v ++ ":x" ++ show x ++ " (" ++ display lv ++ ":x" ++ show lx ++ ")"-    where-        (lv, lx) = fromJust $ latestVersion avail p+printUpgrades verFunc avail (pkgName, (pkgVer, pkgXRev)) = putStrLn $+  pkgName ++ ": " ++ display pkgVer ++ ":x" ++ show pkgXRev ++ " (" ++ display lv ++ ":x" ++ show lx ++ ")"+  where+    (lv, lx) = fromJust $ verFunc avail pkgName pkgVer -printOldShort :: PkgVersions -> (String, (Version, Int)) -> IO ()-printOldShort avail (p, _) = putStrLn $ p ++ "," ++ display l-    where-        l = fst $ fromJust $ latestVersion avail p+printNewShort verFunc avail (pkgName, (pkgVer, _)) = putStrLn $+  pkgName ++ "," ++ display l+  where+    l = fst $ fromJust $ verFunc avail pkgName pkgVer
src/Util/HackageIndex.hs view
@@ -58,7 +58,8 @@                 Just ver -> createPkgVerMap (M.insertWith (++) (head parts) [(ver, xrev)] acc) es             where                 parts = splitDirectories (Tar.entryPath e)-                ver = parts `atMay` 1 >>= simpleParse+                ver = if length parts == 3 then parts `atMay` 1 >>= simpleParse+                      else Nothing                 content = case Tar.entryContent e of                     Tar.NormalFile c _ -> Just $ BSLU.toString c                     _ -> Nothing@@ -70,9 +71,18 @@         createPkgVerMap _ (Tar.Fail _) = undefined  latestVersion :: PkgVersions-    -> String -- ^ package name-    -> Maybe (Version, Int)-latestVersion pnv pkg = last . sort <$> M.lookup  pkg pnv+  -> String -- ^ package name+  -> Version+  -> Maybe (Version, Int)+latestVersion pnv pkg _ = last . sort <$> M.lookup  pkg pnv++thisVersion :: PkgVersions+  -> String -- ^ package name+  -> Version+  -> Maybe (Version, Int) -- ^ xrev+thisVersion pnvs pkgName pkgVer = do+  vers <- M.lookup pkgName pnvs+  find (\ (v, _) -> v == pkgVer) vers  extractCabal :: BSL.ByteString  -- ^ the index     -> String                   -- ^ package name
src/Util/Misc.hs view
@@ -176,7 +176,7 @@     | CmdListPkgs         { listGhc :: Bool, listDistro :: Bool, noListRepo :: Bool         , listFmt :: CmdListFormat, pkgs :: [String] }-    | CmdUpgrades { idxStyle :: Bool }+    | CmdUpgrades { idxStyle :: Bool, xrevs :: Bool }     | CmdPkgBuild { ghcVer :: Version, ghcRel :: Int, patchDir :: FilePath, pkgs :: [String] }     | CmdConvertDb { inDbFile :: FilePath, outDbFile :: FilePath }     | CmdRemovePkg { pkgs :: [String] }
src/Versions.hs view
@@ -25,6 +25,7 @@ import Data.Map as M import Distribution.Text import Distribution.Version+import Data.List  versions :: Command () versions = do@@ -35,7 +36,7 @@     let printFunc = if l then printLatestVersion else printAllVersions     liftIO $ do         pkgsNVers <- buildPkgVersions <$> readIndexFile aD (getIndexFileName cfg)-        mapM_ (\ pkg -> printFunc (pkg, M.lookup pkg pkgsNVers)) pkgs+        mapM_ (\ pkg -> printFunc (pkg, reverse . sort <$> M.lookup pkg pkgsNVers)) pkgs  printAllVersions :: (String, Maybe [(Version, Int)]) -> IO () printAllVersions (p, Nothing) = putStrLn $ p ++ ": No such package"