packdeps 0.4.1 → 0.4.2
raw patch · 3 files changed
+21/−12 lines, 3 files
Files
- ChangeLog.md +4/−0
- packdeps.cabal +1/−1
- tools/packdeps-cli.hs +16/−11
ChangeLog.md view
@@ -1,3 +1,7 @@+## 0.4.2++* Added --quiet flag to suppress output for up to date cabal files [#29](https://github.com/snoyberg/packdeps/pull/29)+ ## 0.4.1 * Cli improvements: UI tweaks and --recursive flag [#28](https://github.com/snoyberg/packdeps/pull/28)
packdeps.cabal view
@@ -1,5 +1,5 @@ name: packdeps-version: 0.4.1+version: 0.4.2 license: BSD3 license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>
tools/packdeps-cli.hs view
@@ -1,5 +1,5 @@ import Distribution.PackDeps-import Control.Monad (forM_, foldM)+import Control.Monad (forM_, foldM, when) import System.Environment (getArgs, getProgName) import System.Exit (exitFailure, exitSuccess) import Distribution.Text (display)@@ -15,15 +15,17 @@ ["help"] -> usageExit _ | "-h" `elem` args || "--help" `elem` args -> usageExit _ -> do- isGood <- run ("--recursive" `elem` args) (filter (/= "--recursive") args)+ isGood <- run ("--recursive" `elem` args) ("--quiet" `elem` args) (filter (\arg -> arg /= "--recursive" && arg /= "--quiet") args) if isGood then exitSuccess else exitFailure type CheckDeps = Newest -> DescInfo -> (PackageName, Version, CheckDepsRes) -checkDepsCli :: CheckDeps -> Newest -> DescInfo -> IO Bool-checkDepsCli cd newest di =+checkDepsCli :: Bool -> CheckDeps -> Newest -> DescInfo -> IO Bool+checkDepsCli quiet cd newest di = case cd newest di of- (pn, v, AllNewest) -> do+ (pn, v, AllNewest)+ | quiet -> return True+ | otherwise -> do putStrLn $ concat [ unPackageName pn , "-"@@ -42,9 +44,10 @@ return False run :: Bool -- ^ Check transitive dependencies+ -> Bool -- ^ Quiet -- only report packages that are not up to date -> [FilePath] -- ^ .cabal filenames -> IO Bool-run deep args = do+run deep quiet args = do newest <- loadNewest foldM (go newest) True args where@@ -53,12 +56,12 @@ di <- case mdi of Just di -> return di Nothing -> error $ "Could not parse cabal file: " ++ fp- allGood <- checkDepsCli checkDeps newest di+ allGood <- checkDepsCli quiet checkDeps newest di depsGood <- if deep then do putStrLn $ "\nTransitive dependencies:"- allM (checkDepsCli checkLibDeps newest) (deepLibDeps newest [di])+ allM (checkDepsCli quiet checkLibDeps newest) (deepLibDeps newest [di]) else return True- putStrLn ""+ when (not (allGood && depsGood)) $ putStrLn "" return $ wasAllGood && allGood && depsGood unPackageName :: PackageName -> String@@ -69,10 +72,12 @@ usageExit = do pname <- getProgName putStrLn $ "\n"- ++ "Usage: " ++ pname ++ " [--recursive] pkgname.cabal pkgname2.cabal...\n\n"+ ++ "Usage: " ++ pname ++ " [--recursive] [--quiet] pkgname.cabal pkgname2.cabal...\n\n" ++ "Check the given cabal file's dependency list to make sure that it does not exclude\n" ++ "the newest package available. Its probably worth running the 'cabal update' command\n"- ++ "immediately before running this program.\n"+ ++ "immediately before running this program.\n\n"+ ++ " --quiet\n"+ ++ " Suppress output for .cabal files which can accept the newest packages available.\n" exitSuccess -- | Non short-circuiting monadic version of 'all'