Skip to content

Commit 15f7c2f

Browse files
authored
Add --after option to verify-set (#72)
1 parent 7aa04a8 commit 15f7c2f

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

app/Main.hs

+11-5
Original file line numberDiff line numberDiff line change
@@ -443,17 +443,19 @@ verify inputName = case mkPackageName (pack inputName) of
443443

444444
traverse_ (verifyPackage db paths) packages
445445

446-
verifyPackageSet :: IO ()
447-
verifyPackageSet = do
446+
verifyPackageSet :: Maybe Text -> IO ()
447+
verifyPackageSet after = do
448448
pkg <- readPackageFile
449449
db <- readPackageSet pkg
450-
echoT ("Verifying " <> pack (show (Map.size db)) <> " packages.")
450+
451+
let filtered = maybe db (\after_ -> Map.filterWithKey (\k _ -> runPackageName k >= after_) db) after
452+
echoT ("Verifying " <> pack (show (Map.size filtered)) <> " packages.")
451453
echoT "Warning: this could take some time!"
452454

453455
let installOrUpdate' (name, pkgInfo) = (name, ) <$> installOrUpdate (set pkg) name pkgInfo
454456
paths <- Map.fromList <$> traverse installOrUpdate' (Map.toList db)
455457

456-
for_ (Map.toList db) $ \(name, _) -> verifyPackage db paths name
458+
for_ (Map.toList filtered) $ \(name, _) -> verifyPackage db paths name
457459

458460
verifyPackage :: PackageSet -> Map.Map PackageName Turtle.FilePath -> PackageName -> IO ()
459461
verifyPackage db paths name = do
@@ -525,7 +527,7 @@ main = do
525527
(Opts.info (checkForUpdates <$> apply <*> applyMajor Opts.<**> Opts.helper)
526528
(Opts.progDesc "Check all packages in the package set for new releases"))
527529
, Opts.command "verify-set"
528-
(Opts.info (pure verifyPackageSet)
530+
(Opts.info (verifyPackageSet <$> optional (fromString <$> after))
529531
(Opts.progDesc "Verify that the packages in the package set build correctly"))
530532
, Opts.command "verify"
531533
(Opts.info (verify <$> pkg Opts.<**> Opts.helper)
@@ -565,3 +567,7 @@ main = do
565567
Opts.long "sort"
566568
<> Opts.short 's'
567569
<> Opts.help "Sort packages in dependency order"
570+
571+
after = Opts.strOption $
572+
Opts.long "after"
573+
<> Opts.help "Skip packages before this package during verification"

0 commit comments

Comments
 (0)