rpmbuild-order 0.4.3 → 0.4.3.1
raw patch · 3 files changed
+14/−8 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- ChangeLog.md +3/−0
- rpmbuild-order.cabal +4/−3
- src/Main.hs +7/−5
ChangeLog.md view
@@ -1,3 +1,6 @@+# 0.4.3.1 (2020-09-24)+- 'deps' and 'rdeps': --exclude option to ignore a "broken" neighboring package+ # 0.4.3 (2020-09-18) - 'deps' and 'rdeps' can now take --ignore-BR options (provided through depsPackages and new createGraph''')
rpmbuild-order.cabal view
@@ -1,5 +1,5 @@ Name: rpmbuild-order-Version: 0.4.3+Version: 0.4.3.1 License: BSD3 License-File: LICENSE Author: Henning Thielemann <haskell@henning-thielemann.de>,@@ -27,9 +27,10 @@ GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.2-Cabal-Version: >=1.10+Cabal-Version: 1.18 Build-Type: Simple-Extra-source-files: README.md TODO ChangeLog.md rpmbuild-order.1+Extra-doc-files: README.md TODO ChangeLog.md+Extra-source-files: rpmbuild-order.1 test/pkgs/A/A.spec test/pkgs/B/B.spec test/pkgs/C/C.spec
src/Main.hs view
@@ -14,6 +14,7 @@ import Control.Monad.Extra import Data.Graph.Inductive.Query.DFS (components) import Data.List (intercalate)+import Data.List.Extra (dropSuffix) #if !MIN_VERSION_simple_cmd_args(0,1,4) import Options.Applicative (str)@@ -39,9 +40,9 @@ [ Subcommand "sort" "sort packages" $ sortPackages <$> rpmOpts <*> verboseOpt <*> lenientOpt <*> componentsOpt <*> subdirOpt <*> pkgArgs , Subcommand "deps" "sort dependencies" $- depsPackages False <$> rpmOpts <*> verboseOpt <*> ignoredBRopts <*> lenientOpt <*> combineOpt <*> subdirOpt <*> pkgArgs+ depsPackages False <$> rpmOpts <*> verboseOpt <*> excludeOpts <*> ignoredBRopts <*> lenientOpt <*> combineOpt <*> subdirOpt <*> pkgArgs , Subcommand "rdeps" "sort dependents" $- depsPackages True <$> rpmOpts <*> verboseOpt <*> ignoredBRopts <*> lenientOpt <*> combineOpt <*> subdirOpt <*> pkgArgs+ depsPackages True <$> rpmOpts <*> verboseOpt <*> excludeOpts <*> ignoredBRopts <*> lenientOpt <*> combineOpt <*> subdirOpt <*> pkgArgs , Subcommand "layers" "ordered output suitable for a chain-build" $ layerPackages <$> rpmOpts <*> verboseOpt <*> lenientOpt <*> combineOpt <*> subdirOpt <*> pkgArgs , Subcommand "chain" "ordered output suitable for a chain-build" $@@ -63,16 +64,17 @@ flagWith Parallel Combine 'c' "combine" "Combine connected and independent packages" rpmOpts = many (strOptionWith 'r' "rpmopt" "RPMOPT" "Option for rpmspec") ignoredBRopts = many (strOptionWith 'I' "ignore-BR" "PKG" "BuildRequires to exclude from graph")+ excludeOpts = many (dropSuffix "/" <$> strOptionWith 'x' "exclude" "PKG" "Package dirs to exclude from graph") sortPackages :: [String] -> Bool -> Bool -> Components -> Maybe FilePath -> [FilePath] -> IO () sortPackages rpmopts verbose lenient opts mdir pkgs = do createGraph'' rpmopts verbose lenient True mdir pkgs >>= sortGraph opts -depsPackages :: Bool -> [String] -> Bool-> [String] -> Bool -> Bool -> Maybe FilePath -> [FilePath] -> IO ()-depsPackages rev rpmopts verbose ignoredBRs lenient parallel mdir pkgs = do+depsPackages :: Bool -> [String] -> Bool-> [String] -> [String] -> Bool -> Bool -> Maybe FilePath -> [FilePath] -> IO ()+depsPackages rev rpmopts verbose excludedPkgs ignoredBRs lenient parallel mdir pkgs = do unlessM (and <$> mapM doesDirectoryExist pkgs) $ error "Please use package directory paths"- listDirectory "." >>=+ filter (`notElem` excludedPkgs) <$> listDirectory "." >>= -- filter out dotfiles createGraph''' ignoredBRs rpmopts verbose lenient (not rev) mdir . filter ((/= '.') . head) >>= createGraph'' rpmopts verbose lenient True mdir . dependencyNodes pkgs >>=