pkgtreediff 0.2 → 0.2.1
raw patch · 3 files changed
+18/−10 lines, 3 files
Files
- Main.hs +10/−9
- README.md +7/−0
- pkgtreediff.cabal +1/−1
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