mirror of https://github.com/sbt/sbt.git
Update util-cache/src/main/scala/sbt/util/ActionCacheStore.scala
Co-authored-by: adpi2 <adrien.piquerez@gmail.com>
This commit is contained in:
parent
0e67131beb
commit
9bc0ba5f5b
|
|
@ -213,26 +213,26 @@ class DiskActionCacheStore(base: Path, fileConverter: FileConverter)
|
||||||
putBlob(b.input, Digest(b))
|
putBlob(b.input, Digest(b))
|
||||||
(b: HashedVirtualFileRef)
|
(b: HashedVirtualFileRef)
|
||||||
|
|
||||||
def toOutFile(digest: Digest): Path =
|
def toCasFile(digest: Digest): Path =
|
||||||
(casBase.toFile / digest.toString.replace("/", "-")).toPath()
|
(casBase.toFile / digest.toString.replace("/", "-")).toPath()
|
||||||
|
|
||||||
def putBlob(input: InputStream, digest: Digest): Path =
|
def putBlob(input: InputStream, digest: Digest): Path =
|
||||||
val outFile = toOutFile(digest)
|
val casFile = toCasFile(digest)
|
||||||
IO.transfer(input, outFile.toFile())
|
IO.transfer(input, casFile.toFile())
|
||||||
outFile
|
casFile
|
||||||
|
|
||||||
def putBlob(input: ByteBuffer, digest: Digest): Path =
|
def putBlob(input: ByteBuffer, digest: Digest): Path =
|
||||||
val outFile = toOutFile(digest)
|
val casFile = toCasFile(digest)
|
||||||
input.flip()
|
input.flip()
|
||||||
val file = RandomAccessFile(outFile.toFile(), "rw")
|
val file = RandomAccessFile(casFile.toFile(), "rw")
|
||||||
try
|
try
|
||||||
file.getChannel().write(input)
|
file.getChannel().write(input)
|
||||||
outFile
|
casFile
|
||||||
finally file.close()
|
finally file.close()
|
||||||
|
|
||||||
private def getBlobs(refs: Seq[HashedVirtualFileRef]): Seq[VirtualFile] =
|
private def getBlobs(refs: Seq[HashedVirtualFileRef]): Seq[VirtualFile] =
|
||||||
refs.flatMap: r =>
|
refs.flatMap: r =>
|
||||||
val casFile = toOutFile(Digest(r))
|
val casFile = toCasFile(Digest(r))
|
||||||
if casFile.toFile().exists then
|
if casFile.toFile().exists then
|
||||||
r match
|
r match
|
||||||
case p: PathBasedFile => Some(p)
|
case p: PathBasedFile => Some(p)
|
||||||
|
|
@ -243,7 +243,7 @@ class DiskActionCacheStore(base: Path, fileConverter: FileConverter)
|
||||||
|
|
||||||
override def syncBlobs(refs: Seq[HashedVirtualFileRef], outputDirectory: Path): Seq[Path] =
|
override def syncBlobs(refs: Seq[HashedVirtualFileRef], outputDirectory: Path): Seq[Path] =
|
||||||
refs.flatMap: ref =>
|
refs.flatMap: ref =>
|
||||||
val casFile = toOutFile(Digest(ref))
|
val casFile = toCasFile(Digest(ref))
|
||||||
if casFile.toFile().exists then
|
if casFile.toFile().exists then
|
||||||
val outPath = fileConverter.toPath(ref)
|
val outPath = fileConverter.toPath(ref)
|
||||||
Files.createDirectories(outPath.getParent())
|
Files.createDirectories(outPath.getParent())
|
||||||
|
|
@ -253,7 +253,7 @@ class DiskActionCacheStore(base: Path, fileConverter: FileConverter)
|
||||||
|
|
||||||
override def findBlobs(refs: Seq[HashedVirtualFileRef]): Seq[HashedVirtualFileRef] =
|
override def findBlobs(refs: Seq[HashedVirtualFileRef]): Seq[HashedVirtualFileRef] =
|
||||||
refs.flatMap: r =>
|
refs.flatMap: r =>
|
||||||
val casFile = toOutFile(Digest(r))
|
val casFile = toCasFile(Digest(r))
|
||||||
if casFile.toFile().exists then Some(r)
|
if casFile.toFile().exists then Some(r)
|
||||||
else None
|
else None
|
||||||
end DiskActionCacheStore
|
end DiskActionCacheStore
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue