|
10 | 10 | module Main where
|
11 | 11 |
|
12 | 12 | import qualified Control.Foldl as Foldl
|
13 |
| -import Control.Concurrent.Async (forConcurrently_) |
| 13 | +import Control.Concurrent.Async (forConcurrently_, mapConcurrently) |
14 | 14 | import qualified Data.Aeson as Aeson
|
15 | 15 | import Data.Aeson.Types (fieldLabelModifier)
|
16 | 16 | import Data.Aeson.Encode.Pretty
|
@@ -474,17 +474,19 @@ verify arg = do
|
474 | 474 | verifyPackages names db pkg = do
|
475 | 475 | echoT $ "Verifying " <> pack (show $ length names) <> " packages."
|
476 | 476 | echoT "Warning: this could take some time!"
|
477 |
| - |
478 |
| - let go (name_, pkgInfo) = (name_, ) <$> performInstall (set pkg) name_ pkgInfo |
479 |
| - paths <- Map.fromList <$> traverse go (Map.toList db) |
480 |
| - traverse_ (verifyPackage db paths) names |
481 |
| - |
482 |
| - verifyPackage :: PackageSet -> Map.Map PackageName Turtle.FilePath -> PackageName -> IO () |
483 |
| - verifyPackage db paths name = do |
484 |
| - let dirFor pkgName = fromMaybe (error ("verifyPackageSet: no directory for " <> show pkgName)) (Map.lookup pkgName paths) |
| 477 | + traverse_ (verifyPackage db pkg) names |
| 478 | + |
| 479 | + verifyPackage :: PackageSet -> PackageConfig -> PackageName -> IO () |
| 480 | + verifyPackage db pkg name = do |
| 481 | + let |
| 482 | + dirFor pkgName = |
| 483 | + case Map.lookup pkgName db of |
| 484 | + Nothing -> error ("verifyPackageSet: no directory for " <> show pkgName) |
| 485 | + Just pkgInfo -> performInstall (set pkg) pkgName pkgInfo |
485 | 486 | echoT ("Verifying package " <> runPackageName name)
|
486 | 487 | dependencies <- map fst <$> getTransitiveDeps db [name]
|
487 |
| - let srcGlobs = map (pathToTextUnsafe . (</> ("src" </> "**" </> "*.purs")) . dirFor) dependencies |
| 488 | + dirs <- mapConcurrently dirFor dependencies |
| 489 | + let srcGlobs = map (pathToTextUnsafe . (</> ("src" </> "**" </> "*.purs"))) dirs |
488 | 490 | procs "purs" ("compile" : srcGlobs) empty
|
489 | 491 |
|
490 | 492 | data BowerInfoRepo = BowerInfoRepo
|
|
0 commit comments