packages feed

packdeps 0.4.1 → 0.4.2

raw patch · 3 files changed

+21/−12 lines, 3 files

Files

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'