packages feed

pkgtreediff 0.2 → 0.2.1

raw patch · 3 files changed

+18/−10 lines, 3 files

Files

Main.hs view
@@ -87,9 +87,9 @@       concurrently (readPackages isUrl1 mmgr t1) (readPackages isUrl2 mmgr t2)      readPackages isUrl mmgr loc = do-      fs <- (if isUrl then httpPackages recursive (fromJust mmgr) else dirPackages) loc+      fs <- (if isUrl then httpPackages True (fromJust mmgr) else dirPackages True) loc       let ps = map ((if igArch then binToPkg else id) . readPkg) fs-      return $ (if igArch then nub else id) ps+      return $ sort (nub ps)      binToPkg :: Package -> Package     binToPkg (Pkg n vr _) = Pkg n vr Nothing@@ -97,14 +97,15 @@     httpPackages recurse mgr url = do       exists <- httpExists mgr url       fs <- if exists-            then filter (not <$> \ f -> "/" `T.isPrefixOf` f || "?" `T.isPrefixOf` f || f == "../") <$> httpDirectory mgr url+               -- nub here because opensuse has dup img links+            then nub . filter (\ f -> f /= "../" && (not . isHttp) (T.unpack f) && not ("/" `T.isPrefixOf` f) && ("/" `T.isSuffixOf` f || ".rpm" `T.isSuffixOf` f)) <$> httpDirectory mgr url             else error' $ "Could not get " <> url-      if recurse && all isDir fs then concatMapM (httpPackages False mgr) (map ((url </>) . T.unpack) fs) else return fs+      if (recurse || recursive) && all isDir fs then concatMapM (httpPackages False mgr) (map ((url </>) . T.unpack) fs) else return $ filter (not . isDir) fs -    dirPackages dir = do+    dirPackages recurse dir = do       fs <- sort <$> listDirectory dir       alldirs <- mapM doesDirectoryExist fs-      if recursive && and alldirs then concatMapM dirPackages (map (dir </>) fs) else return $ map T.pack fs+      if (recurse || recursive) && and alldirs then concatMapM (dirPackages False) (map (dir </>) fs) else return $ filter (not . isDir) $ map T.pack fs      isHttp :: String -> Bool     isHttp loc = "http:" `isPrefixOf` loc || "https:" `isPrefixOf` loc@@ -115,7 +116,7 @@ type Arch = Text  data VersionRelease = VerRel Text Text-  deriving Eq+  deriving (Eq,Ord)  -- eqVR True ignore release eqVR :: Ignore -> VersionRelease -> VersionRelease -> Bool@@ -129,7 +130,7 @@     txtVerRel (VerRel v r) = v <> "-" <> r  data Package = Pkg {pkgName :: Name, pkgVerRel :: VersionRelease, pkgMArch :: Maybe Arch}-  deriving Eq+  deriving (Eq, Ord)  pkgIdent :: Package -> Text pkgIdent p  = pkgName p <> appendArch p@@ -171,7 +172,7 @@ showPkgDiff mode (PkgAdd p) | isDefault mode = Just $ "+ " <> showPkg p showPkgDiff mode (PkgDel p) | isDefault mode  = Just $ "- " <> showPkg p showPkgDiff mode (PkgUpdate p1 p2) | isDefault mode = Just $ " " <> showPkgUpdate p1 p2-showPkgDiff mode (PkgArch p1 p2) | isDefault mode = Just $ "* " <> showArchChange p1 p2+showPkgDiff mode (PkgArch p1 p2) | isDefault mode = Just $ "! " <> showArchChange p1 p2 showPkgDiff _ _ = Nothing  showPkgUpdate :: Package -> Package -> Text
README.md view
@@ -14,3 +14,10 @@ - packageOld v'  updatedPackage: v1 -> v2 ```++## Builds++Builds are available in+[copr](https://copr.fedorainfracloud.org/coprs/petersen/pkgtreediff/)+for Fedora, EPEL, and OpenSuSE+([more details](https://copr.fedorainfracloud.org/coprs/petersen/pkgtreediff/monitor/detailed)).
pkgtreediff.cabal view
@@ -1,6 +1,6 @@ cabal-version:       1.18 name:                pkgtreediff-version:             0.2+version:             0.2.1 synopsis:            Package tree diff tool description:         Tool for comparing RPM package files in OS dist trees. homepage:            https://github.com/juhp/pkgtreediff