packages feed

licensor 0.4.2 → 0.4.3

raw patch · 4 files changed

+79/−67 lines, 4 filesdep −cmdargsPVP ok

version bump matches the API change (PVP)

Dependencies removed: cmdargs

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -1,3 +1,7 @@+# 0.4.3 (2021-02-06)++- Use System.Console.GetOpt instead of cmdargs+ # 0.4.2 (2021-01-31)  - Fix "Error: ..." message
README.md view
@@ -9,7 +9,7 @@ Licensor is a program that generates a report of the dependencies and transitive dependencies of a Haskell project and their licenses. -NOTE: Currently, [Stack][https://haskellstack.org/] and a `stack.yaml` file are+NOTE: Currently, [Stack](https://haskellstack.org/) and a `stack.yaml` file are required.  ## Description@@ -84,16 +84,10 @@ For more information, run `licensor --help`:  ```-licensor 0.4.0--licensor [OPTIONS]--Common flags:-  -? --help             Display help message-  -V --version          Print version information-     --numeric-version  Print just the version number-  -v --verbose          Loud verbosity-  -q --quiet            Quiet verbosity+usage: licensor+  -q, -s  --quiet, --silent  Quiet/silent mode+  -h      --help             Display help message+  -V      --version          Print version information ```  ## Notes@@ -145,24 +139,24 @@  ### License report -Licensor (0.4.0) depends on the following libraries:+Licensor (0.4.3) depends on the following libraries:  Library                   | License ------------------------- | --------------------------base                      | BSD3-Cabal                     | BSD3-cmdargs                   | BSD3-containers                | BSD3-directory                 | BSD3-process                   | BSD3+Cabal                     | BSD-3+base                      | BSD-3+containers                | BSD-3+directory                 | BSD-3+process                   | BSD-3  And the following licenses (including transitive dependencies):  License                   | Number of libraries ------------------------- | --------------------------BSD3                      | 20+BSD-2                     | 1+BSD-3                     | 20 -(Tested with Licensor 0.4.0, Stack 2.1.3, and LTS Haskell 11.11.)+(Tested with Licensor 0.4.3, Stack 2.5.1, and LTS Haskell 15.8.)  ## Additional resources 
app/Main.hs view
@@ -1,6 +1,3 @@-{-# LANGUAGE DeriveDataTypeable #-}-{-# LANGUAGE NamedFieldPuns #-}- ---------------------------------------------------------------------- -- | -- Module: Main@@ -15,22 +12,19 @@   )   where --- licensor-import Licensor---- base-import Control.Monad-import Data.List-import qualified Data.Version as Version-import System.Environment-import qualified System.Exit as Exit- -- Cabal import Distribution.PackageDescription import Distribution.Text --- cmdargs-import System.Console.CmdArgs+-- base+import Control.Monad (unless)+import Data.Foldable (for_)+import Data.List (foldl', intercalate)+import Data.Version (showVersion)+import System.Console.GetOpt+import System.Environment (getArgs, getProgName)+import System.Exit (die, exitFailure, exitSuccess)+import System.IO (hPutStrLn, stderr, stdout)  -- containers import qualified Data.Map.Strict as Map@@ -39,43 +33,64 @@ -- directory import System.Directory (doesFileExist) +-- licensor+import Licensor --- |------ -data LiArgs =-  LiArgs-    {-    }-  deriving (Data)+prettyUsageInfo :: String -> String+prettyUsageInfo progName =+  "usage: " <> usageInfo progName optDescrs  --- |------+prettyVersion :: String -> String+prettyVersion progName =+  unwords [progName, showVersion version] -liArgs :: String -> Mode (CmdArgs LiArgs)-liArgs s =-  cmdArgsMode $-    LiArgs-      {-      }-  &= program s-  &= summary (unwords ["licensor", Version.showVersion version])-  &= verbosity +optDescrs :: [OptDescr (Bool -> IO Bool)]+optDescrs =+  [ Option ['q', 's'] ["quiet", "silent"]+      (NoArg (\_ -> pure False))+      "Quiet/silent mode"+  , Option ['h'] ["help"]+      (NoArg (\_ -> exitWith prettyUsageInfo))+      "Display help message"+  , Option ['V'] ["version"]+      (NoArg (\_ -> exitWith prettyVersion))+       "Print version information"+   ]+   where+     exitWith f = do+       progName <- getProgName+       hPutStrLn stdout (f progName)+       exitSuccess --- |------  main :: IO () main = do-  LiArgs <- cmdArgsRun . liArgs =<< getProgName+  args <- getArgs+  progName <- getProgName+  case getOpt' Permute optDescrs args of+    (opts, [], [], []) -> do+      verbose <- foldl' (>>=) (pure True) opts+      main' verbose+    (_, command:_, _, _) -> do+      hPutStrLn stderr ("unknown command: " <> command)+      hPutStrLn stderr (prettyUsageInfo progName)+      exitFailure+    (_, _, option:_, _) -> do+      hPutStrLn stderr ("unknown option: " <> option)+      hPutStrLn stderr (prettyUsageInfo progName)+      exitFailure+    (_, _, _, _) -> do+      hPutStrLn stderr (prettyUsageInfo progName)+      exitFailure -  quiet <- fmap not isNormal +main' :: Bool -> IO ()+main' verbose = do+  let silent = not verbose+   maybePackage <- getPackage    pid <-@@ -87,7 +102,7 @@             putStrLn "Found stack.yaml..."             pure Nothing           else-            Exit.die "Error: No stack.yaml file found."+            die "Error: No stack.yaml file found."        Just pd -> do         putStrLn $@@ -105,11 +120,11 @@   case (maybeDependencies, maybeLicenses) of     (Just dependencies, Just licenses) -> do       (dependenciesByLicense', failed) <--        orderPackagesByLicense quiet pid licenses dependencies+        orderPackagesByLicense silent pid licenses dependencies        let dependenciesByLicense = fmap (Set.map display) dependenciesByLicense' -      forM_ (Map.keys dependenciesByLicense) $+      for_ (Map.keys dependenciesByLicense) $         \li ->           let             n = dependenciesByLicense Map.! li@@ -127,4 +142,4 @@         putStr "Failed: "         print failed     _ ->-      Exit.die "Error: Unable to run 'stack ls dependencies'"+      die "Error: Unable to run 'stack ls dependencies'"
licensor.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2  name:           licensor-version:        0.4.2+version:        0.4.3 synopsis:       A license compatibility helper description:    A license compatibility helper. category:       Distribution@@ -51,8 +51,7 @@   main-is:       Main.hs   build-depends:-      cmdargs-    , licensor+      licensor   ghc-options:       -threaded -rtsopts -with-rtsopts=-N