packdeps 0.5.0.0 → 0.6.0.0
raw patch · 4 files changed
+24/−11 lines, 4 filesdep ~Cabaldep ~basedep ~optparse-applicative
Dependency ranges changed: Cabal, base, optparse-applicative, text
Files
- ChangeLog.md +4/−0
- packdeps.cabal +5/−4
- src/Distribution/PackDeps.hs +10/−5
- tools/packdeps-cli.hs +5/−2
ChangeLog.md view
@@ -1,5 +1,9 @@ # ChangeLog for packdeps +## 0.6.0.0++* Switch to Cabal 3.2+ ## 0.5.0.0 * Switch to Cabal 3.0
packdeps.cabal view
@@ -1,5 +1,5 @@ name: packdeps-version: 0.5.0.0+version: 0.6.0.0 license: BSD3 license-file: LICENSE author: Michael Snoyman <michael@snoyman.com>@@ -19,12 +19,12 @@ library default-language: Haskell2010 hs-source-dirs: src- build-depends: base >= 4.6 && < 5+ build-depends: base >= 4.14 && < 5 , tar >= 0.4 && < 0.6 , split >= 0.1.2.3 , bytestring >= 0.9 , text >= 0.7- , Cabal >= 3.0 && < 3.1+ , Cabal >= 3.2 && < 3.3 , time >= 1.1.4 , containers >= 0.2 , directory >= 1.0@@ -39,13 +39,14 @@ ghc-options: -Wall -rtsopts - build-depends: base >= 4 && < 5+ build-depends: base >= 4.14 && < 5 , Cabal , optparse-applicative >=0.14 && <0.16 , containers , semigroups , process , packdeps+ , text source-repository head type: git
src/Distribution/PackDeps.hs view
@@ -48,6 +48,8 @@ import Distribution.Parsec.FieldLineStream (fieldLineStreamFromBS) import Distribution.Types.CondTree import Distribution.Version+import Distribution.Utils.ShortText+import qualified Distribution.Utils.ShortText as ShortText import qualified Distribution.Fields as F import qualified Distribution.Fields.Field as F import qualified Distribution.Simple.Utils as U@@ -204,19 +206,22 @@ -- | Information on a single package. data DescInfo = DescInfo- { diHaystack :: String+ { diHaystack :: ShortText , diDeps :: [Dependency] , diLibDeps :: [Dependency] , diPackage :: PackageIdentifier , diRevision :: Int- , diSynopsis :: String+ , diSynopsis :: ShortText } deriving (Show, Read) -- | Return revision and DescInfo getDescInfo :: GenericPackageDescription -> DescInfo getDescInfo gpd = DescInfo- { diHaystack = map toLower $ author p ++ maintainer p ++ name+ { diHaystack = ShortText.toShortText $+ map toLower $+ ShortText.fromShortText $+ author p <> maintainer p <> ShortText.toShortText name , diDeps = getDeps gpd , diLibDeps = getLibDeps gpd , diPackage = pi'@@ -329,8 +334,8 @@ where needle' = map toLower needle go PackInfo { piDesc = Just desc } =- if needle' `isInfixOf` diHaystack desc &&- not ("(deprecated)" `isInfixOf` diSynopsis desc)+ if needle' `isInfixOf` ShortText.fromShortText (diHaystack desc) &&+ not ("(deprecated)" `isInfixOf` ShortText.fromShortText (diSynopsis desc)) then Just desc else Nothing go _ = Nothing
tools/packdeps-cli.hs view
@@ -4,7 +4,6 @@ import Control.Monad (liftM) import Data.Char (isSpace) import Data.List (foldl')-import Data.Semigroup ((<>)) import Distribution.PackDeps import Distribution.Package (PackageIdentifier (pkgName, pkgVersion), PackageName, unPackageName) import Distribution.Text (display)@@ -12,6 +11,8 @@ import qualified Distribution.InstalledPackageInfo as IPI import System.Exit (exitFailure, exitSuccess) import System.Process (readProcess)+import qualified Data.Text as T+import Data.Text.Encoding (encodeUtf8) import qualified Data.Map as Map import qualified Options.Applicative as O@@ -77,7 +78,9 @@ updateWithGhcPkg newest = do output <- readProcess "ghc-pkg" ["dump"] "" ipis <- either (fail . show) (return . map snd) $- traverse IPI.parseInstalledPackageInfo $ splitPkgs output+ traverse IPI.parseInstalledPackageInfo $+ map (encodeUtf8 . T.pack) $+ splitPkgs output return $ foldl' apply newest $ map toPackInfo ipis where apply :: Newest -> (PackageName, PackInfo) -> Newest