[filesystem] Merge FS object into FileSystem object (#139)

This commit is contained in:
Paul Campbell 2019-07-30 15:30:12 +01:00 committed by GitHub
parent e5de73e705
commit a749b1f5b0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 26 deletions

View file

@ -2,7 +2,7 @@ package net.kemitix.thorp.config
import java.nio.file.Path
import net.kemitix.thorp.filesystem.{FS, FileSystem}
import net.kemitix.thorp.filesystem.FileSystem
import zio.{IO, ZIO}
trait ParseConfigFile {
@ -16,9 +16,10 @@ trait ParseConfigFile {
List(ConfigValidation.ErrorReadingFile(filename, h.getMessage))))
private def readFile(filename: Path) =
FS.exists(filename.toFile)
FileSystem
.exists(filename.toFile)
.flatMap(
if (_) FS.lines(filename.toFile)
if (_) FileSystem.lines(filename.toFile)
else ZIO.succeed(List.empty))
}

View file

@ -5,7 +5,7 @@ import java.nio.file.Path
import java.security.MessageDigest
import net.kemitix.thorp.domain.MD5Hash
import net.kemitix.thorp.filesystem.{FS, FileSystem}
import net.kemitix.thorp.filesystem.FileSystem
import zio.{Task, TaskR}
import scala.collection.immutable.NumericRange
@ -48,7 +48,8 @@ object MD5HashGenerator {
offset: Long,
endOffset: Long
) =
FS.open(file, offset)
FileSystem
.open(file, offset)
.flatMap { managedFileInputStream =>
managedFileInputStream.use { fileInputStream =>
digestFile(fileInputStream, offset, endOffset)

View file

@ -3,7 +3,7 @@ package net.kemitix.thorp.core
import java.nio.file.Path
import net.kemitix.thorp.domain.{RemoteKey, Sources}
import net.kemitix.thorp.filesystem.{FS, FileSystem}
import net.kemitix.thorp.filesystem.FileSystem
import zio.{TaskR, ZIO}
object Remote {
@ -19,7 +19,7 @@ object Remote {
): TaskR[FileSystem, Boolean] = {
def existsInSource(source: Path) =
remoteKey.asFile(source, prefix) match {
case Some(file) => FS.exists(file)
case Some(file) => FileSystem.exists(file)
case None => ZIO.succeed(false)
}
ZIO

View file

@ -1,19 +0,0 @@
package net.kemitix.thorp.filesystem
import java.io.{File, FileInputStream}
import zio.{TaskR, ZIO, ZManaged}
object FS {
final def exists(file: File): ZIO[FileSystem, Throwable, Boolean] =
ZIO.accessM(_.filesystem fileExists file)
final def open(file: File, offset: Long = 0)
: TaskR[FileSystem, ZManaged[FileSystem, Throwable, FileInputStream]] =
ZIO.accessM(_.filesystem openManagedFileInputStream (file, offset))
final def lines(file: File): TaskR[FileSystem, List[String]] =
ZIO.accessM(_.filesystem fileLines (file))
}

View file

@ -76,4 +76,14 @@ object FileSystem {
fileLinesResult
}
}
final def exists(file: File): ZIO[FileSystem, Throwable, Boolean] =
ZIO.accessM(_.filesystem fileExists file)
final def open(file: File, offset: Long = 0)
: TaskR[FileSystem, ZManaged[FileSystem, Throwable, FileInputStream]] =
ZIO.accessM(_.filesystem openManagedFileInputStream (file, offset))
final def lines(file: File): TaskR[FileSystem, List[String]] =
ZIO.accessM(_.filesystem fileLines (file))
}