@@ -59,13 +59,15 @@ final class StewardAlg[F[_]](implicit
5959 logger.info(msg)
6060 }
6161
62- private def readRepos (reposFile : File ): F [List [Repo ]] =
63- fileAlg.readFile(reposFile).map { maybeContent =>
64- val regex = """ -\s+(.+)/([^/]+)""" .r
65- val content = maybeContent.getOrElse(" " )
66- content.linesIterator.collect { case regex(owner, repo) =>
67- Repo (owner.trim, repo.trim)
68- }.toList
62+ private def readRepos (reposFile : File ): Stream [F , Repo ] =
63+ Stream .evals {
64+ fileAlg.readFile(reposFile).map { maybeContent =>
65+ val regex = """ -\s+(.+)/([^/]+)""" .r
66+ val content = maybeContent.getOrElse(" " )
67+ content.linesIterator.collect { case regex(owner, repo) =>
68+ Repo (owner.trim, repo.trim)
69+ }.toList
70+ }
6971 }
7072
7173 private def steward (repo : Repo ): F [Either [Throwable , Unit ]] = {
@@ -90,12 +92,13 @@ final class StewardAlg[F[_]](implicit
9092 for {
9193 _ <- printBanner
9294 _ <- selfCheckAlg.checkAll
95+ _ <- workspaceAlg.cleanWorkspace
9396 exitCode <- sbtAlg.addGlobalPlugins {
94- for {
95- _ <- workspaceAlg.cleanWorkspace
96- repos <- readRepos(config.reposFile)
97- result <- Stream .emits(repos).evalMap(steward).compile .foldMonoid
98- } yield result. fold(_ => ExitCode .Error , _ => ExitCode .Success )
97+ readRepos(config.reposFile)
98+ .evalMap(steward)
99+ .compile
100+ .foldMonoid
101+ .map(_. fold(_ => ExitCode .Error , _ => ExitCode .Success ) )
99102 }
100103 } yield exitCode
101104 }
0 commit comments