From 4661aab8d70a48994de093d0b37e8afdd75d5323 Mon Sep 17 00:00:00 2001 From: Roman Langolf Date: Sat, 16 Mar 2024 13:09:09 +0700 Subject: [PATCH] (quick)fix resource path on windows --- .../main/scala/dumbo/internal/ResourcesReader.scala | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/core/shared/src/main/scala/dumbo/internal/ResourcesReader.scala b/modules/core/shared/src/main/scala/dumbo/internal/ResourcesReader.scala index ca9d2b1..bdfc5bb 100644 --- a/modules/core/shared/src/main/scala/dumbo/internal/ResourcesReader.scala +++ b/modules/core/shared/src/main/scala/dumbo/internal/ResourcesReader.scala @@ -48,6 +48,9 @@ private[dumbo] object ResourceReader { locationInfo: Option[String] = None, ): ResourceReader[F] = new ResourceReader[F] { + private def toResourcePath(p: Path) = + p.toString.split(java.io.File.separatorChar).filter(_.nonEmpty).mkString("/", "/", "") + override val location: Option[String] = locationInfo override def list: Stream[F, Path] = Stream.evals(readResources).map(r => Path.fromNioPath(r.toNioPath)) @@ -57,12 +60,15 @@ private[dumbo] object ResourceReader { override def readUtf8(path: Path): Stream[F, String] = fs2.io .readInputStream( - Sync[F].delay(getClass().getResourceAsStream(path.toString)), + Sync[F].delay( + getClass().getResourceAsStream(toResourcePath(path)) + ), 64 * 2048, closeAfterUse = true, ) .through(fs2.text.utf8.decode) - override def exists(path: Path): F[Boolean] = Sync[F].delay(getClass().getResourceAsStream(path.toString) != null) + override def exists(path: Path): F[Boolean] = + Sync[F].delay(getClass().getResourceAsStream(toResourcePath(path)) != null) } }