Skip to content

Commit 110c04b

Browse files
committed
Support cabal-install-3.18
1 parent d1eadb0 commit 110c04b

3 files changed

Lines changed: 28 additions & 10 deletions

File tree

app/History.hs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{-# LANGUAGE ApplicativeDo #-}
2+
{-# LANGUAGE CPP #-}
23
{-# LANGUAGE RecordWildCards #-}
34

45
module Main (
@@ -21,6 +22,7 @@ import Distribution.Client.GlobalFlags (globalCacheDir)
2122
import Distribution.Parsec (simpleParsec)
2223
import Distribution.Simple.Flag (fromFlag)
2324
import Distribution.Types.PackageName (PackageName, mkPackageName, unPackageName)
25+
import Distribution.Verbosity qualified as Verbosity
2426
import Granite (defPlot, lineGraph, widthChars, xFormatter, yBounds, yFormatter)
2527
import Hackage.RevDeps (ExtractDependenciesMode (..), getReverseDependencies, getTransitiveReverseDependencies)
2628
import Options.Applicative (Parser, argument, auto, execParser, fullDesc, help, helper, info, long, maybeReader, metavar, option, progDesc, showDefault, switch, value)
@@ -69,6 +71,13 @@ parseArgs today = do
6971
<> help "Count transitive (both direct and indirect) dependencies. This mode is imprecise when passing multiple package names at once. Also in this mode we follow only dependencies of the main library"
7072
pure Config {..}
7173

74+
silentVerbosity :: Verbosity.Verbosity
75+
#if MIN_VERSION_Cabal(3,18,0)
76+
silentVerbosity = Verbosity.mkVerbosity Verbosity.defaultVerbosityHandles Verbosity.silent
77+
#else
78+
silentVerbosity = Verbosity.silent
79+
#endif
80+
7281
main :: IO ()
7382
main = do
7483
let desc = "Count Hackage reverse dependencies for given dates, using local package index. Consider running 'cabal update' beforehand."
@@ -80,7 +89,7 @@ main = do
8089
dates = L.nub $ [cnfStart, addDays (fromIntegral cnfStep) cnfStart .. cnfFinish] ++ [cnfFinish]
8190
supportsAnsi <- hSupportsANSI stdout
8291

83-
cnf <- loadConfig minBound mempty
92+
cnf <- loadConfig silentVerbosity mempty
8493
let cacheDir = fromFlag $ globalCacheDir $ savedGlobalFlags cnf
8594
idx = cacheDir </> hackageHaskellOrg </> "01-index.tar"
8695
putStrLn $ unwords $ "Date " : map (showPackage supportsAnsi) args

app/Main.hs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{-# LANGUAGE ApplicativeDo #-}
2+
{-# LANGUAGE CPP #-}
23
{-# LANGUAGE RecordWildCards #-}
34

45
module Main (
@@ -22,6 +23,7 @@ import Distribution.Types.Dependency (Dependency (..))
2223
import Distribution.Types.LibraryName (LibraryName (..))
2324
import Distribution.Types.PackageName (PackageName, mkPackageName, unPackageName)
2425
import Distribution.Types.VersionRange (VersionRange)
26+
import Distribution.Verbosity qualified as Verbosity
2527
import Hackage.RevDeps (ExtractDependenciesMode (..), getReverseDependencies, getTransitiveReverseDependencies)
2628
import Options.Applicative (Parser, ReadM, argument, auto, execParser, fullDesc, help, helper, info, long, maybeReader, metavar, option, optional, progDesc, switch)
2729
import Options.Applicative.NonEmpty (some1)
@@ -53,6 +55,13 @@ parseArgs = do
5355
<> help "Count transitive (both direct and indirect) dependencies. This mode is imprecise when passing multiple package names at once. Also in this mode we follow only dependencies of the main library"
5456
pure Config {..}
5557

58+
silentVerbosity :: Verbosity.Verbosity
59+
#if MIN_VERSION_Cabal(3,18,0)
60+
silentVerbosity = Verbosity.mkVerbosity Verbosity.defaultVerbosityHandles Verbosity.silent
61+
#else
62+
silentVerbosity = Verbosity.silent
63+
#endif
64+
5665
main :: IO ()
5766
main = do
5867
let desc = "List Hackage reverse dependencies, using local package index. Consider running 'cabal update' beforehand."
@@ -61,7 +70,7 @@ main = do
6170
info (helper <*> parseArgs) (fullDesc <> progDesc desc)
6271
let args = S.fromList $ NE.toList cnfPackageNames
6372

64-
cnf <- loadConfig minBound mempty
73+
cnf <- loadConfig silentVerbosity mempty
6574
let cacheDir = fromFlag $ globalCacheDir $ savedGlobalFlags cnf
6675
idx = cacheDir </> hackageHaskellOrg </> "01-index.tar"
6776
func = if cnfTransitive then getTransitiveReverseDependencies OnlyMainLib else getReverseDependencies AllComponents

hackage-revdeps.cabal

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ library
3737
alfred-margaret >=2.0 && <2.2,
3838
base >=4.17 && <5,
3939
bytestring <0.13,
40-
Cabal >=3.8 && <3.17,
41-
Cabal-syntax >=3.8 && <3.17,
40+
Cabal >=3.8 && <3.19,
41+
Cabal-syntax >=3.8 && <3.19,
4242
containers >=0.5.8 && <0.9,
4343
filepath <1.6,
4444
tar <0.8,
@@ -54,9 +54,9 @@ executable hackage-revdeps
5454
build-depends:
5555
ansi-terminal >=0.11.3 && <1.2,
5656
base,
57-
Cabal >=3.8 && <3.17,
58-
cabal-install >=3.8 && <3.17,
59-
Cabal-syntax >=3.8 && <3.17,
57+
Cabal,
58+
cabal-install >=3.8 && <3.19,
59+
Cabal-syntax,
6060
containers,
6161
filepath,
6262
hackage-revdeps,
@@ -71,9 +71,9 @@ executable hackage-revdeps-history
7171
build-depends:
7272
ansi-terminal >=0.11.3 && <1.2,
7373
base,
74-
Cabal >=3.8 && <3.17,
75-
cabal-install >=3.8 && <3.17,
76-
Cabal-syntax >=3.8 && <3.17,
74+
Cabal,
75+
cabal-install >=3.8 && <3.19,
76+
Cabal-syntax,
7777
containers,
7878
filepath,
7979
granite >=0.7 && <0.8,

0 commit comments

Comments
 (0)