def create[F[_]]()

in modules/core/src/main/scala/org/scalasteward/core/io/WorkspaceAlg.scala [43:82]


  def create[F[_]](config: Config)(implicit
      fileAlg: FileAlg[F],
      logger: Logger[F],
      F: Monad[F]
  ): WorkspaceAlg[F] =
    new WorkspaceAlg[F] {
      private val reposDir: File =
        config.workspace / "repos"

      private val runSummary: File =
        config.workspace / RunSummaryFileName

      /* We don't want the `ensureExists()` side-effect for these files - here, we only want to delete them,
       * not accidentally re-create them while trying to delete them.
       */
      private val runSpecificFiles: Seq[File] = Seq(runSummary, reposDir)

      private def toFile(repo: Repo): File =
        reposDir / repo.owner / repo.repo

      private def toFile(buildRoot: BuildRoot): File =
        toFile(buildRoot.repo) / buildRoot.relativePath

      override def removeAnyRunSpecificFiles: F[Unit] =
        logger.info(s"Removing any run-specific files") >> runSpecificFiles.traverse_(
          fileAlg.deleteForce
        )

      override def rootDir: F[File] =
        fileAlg.ensureExists(config.workspace)

      override def runSummaryFile: F[File] =
        fileAlg.ensureExists(runSummary.parent).map(_ => runSummary)

      override def repoDir(repo: Repo): F[File] =
        fileAlg.ensureExists(toFile(repo))

      override def buildRootDir(buildRoot: BuildRoot): F[File] =
        fileAlg.ensureExists(toFile(buildRoot))
    }