Skip to content

Commit

Permalink
Fix FileInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
eed3si9n committed Nov 27, 2023
1 parent 547502d commit 5ce1c99
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 17 deletions.
1 change: 0 additions & 1 deletion main-actions/src/main/scala/sbt/Sync.scala
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,6 @@ object Sync {
fileConverter.toVirtualFile(file.toPath) -> fileInfo
}

import LibraryManagementCodec._
import sjsonnew.IsoString
implicit def virtualFileRefStringIso: IsoString[VirtualFileRef] =
IsoString.iso[VirtualFileRef](_.toString, VirtualFileRef.of(_))
Expand Down
31 changes: 15 additions & 16 deletions util-cache/src/main/scala/sbt/util/FileInfo.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ import java.io.File

import scala.util.control.NonFatal
import sbt.io.{ Hash, IO }
import sjsonnew.{ Builder, DeserializationException, JsonFormat, Unbuilder, deserializationError }
import CacheImplicits.{ arrayFormat => _, _ }
import sjsonnew.*
import sbt.nio.file._
import sbt.nio.file.syntax._

Expand Down Expand Up @@ -118,7 +117,7 @@ object FileInfo {
implicit val format: JsonFormat[HashModifiedFileInfo] = new JsonFormat[HashModifiedFileInfo] {
def write[J](obj: HashModifiedFileInfo, builder: Builder[J]) = {
builder.beginObject()
builder.addField("file", obj.file)
builder.addField("file", obj.file.toString)
builder.addField("hash", obj.hashArray)
builder.addField("lastModified", obj.lastModified)
builder.endObject()
Expand All @@ -127,11 +126,11 @@ object FileInfo {
def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]) = jsOpt match {
case Some(js) =>
unbuilder.beginObject(js)
val file = unbuilder.readField[File]("file")
val file = unbuilder.readField[String]("file")
val hash = unbuilder.readField[Array[Byte]]("hash")
val lastModified = unbuilder.readField[Long]("lastModified")
unbuilder.endObject()
FileHashModifiedArrayRepr(file, hash, lastModified)
FileHashModifiedArrayRepr(new File(file), hash, lastModified)
case None => deserializationError("Expected JsObject but found None")
}
}
Expand All @@ -148,18 +147,18 @@ object FileInfo {
implicit val format: JsonFormat[HashFileInfo] = new JsonFormat[HashFileInfo] {
def write[J](obj: HashFileInfo, builder: Builder[J]) = {
builder.beginObject()
builder.addField("file", obj.file)
builder.addField("file", obj.file.toString)
builder.addField("hash", obj.hashArray)
builder.endObject()
}

def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]) = jsOpt match {
case Some(js) =>
unbuilder.beginObject(js)
val file = unbuilder.readField[File]("file")
val file = unbuilder.readField[String]("file")
val hash = unbuilder.readField[Array[Byte]]("hash")
unbuilder.endObject()
FileHashArrayRepr(file, hash)
FileHashArrayRepr(new File(file), hash)
case None => deserializationError("Expected JsObject but found None")
}
}
Expand All @@ -182,18 +181,18 @@ object FileInfo {
jsOpt match {
case Some(js) =>
unbuilder.beginObject(js)
val file = unbuilder.readField[File]("file")
val lastModified = unbuilder.readField[Long]("lastModified")
val file = unbuilder.readField[String]("file")
val lastModified = unbuilder.readField[String]("lastModified").toLong
unbuilder.endObject()
FileModified(file, lastModified)
FileModified(new File(file), lastModified)
case None =>
deserializationError("Expected JsObject but found None")
}

override def write[J](obj: ModifiedFileInfo, builder: Builder[J]): Unit = {
builder.beginObject()
builder.addField("file", obj.file)
builder.addField("lastModified", obj.lastModified)
builder.addField[String]("file", obj.file.toString)
builder.addField[String]("lastModified", obj.lastModified.toString)
builder.endObject()
}
}
Expand Down Expand Up @@ -232,18 +231,18 @@ object FileInfo {
implicit val format: JsonFormat[PlainFileInfo] = new JsonFormat[PlainFileInfo] {
def write[J](obj: PlainFileInfo, builder: Builder[J]): Unit = {
builder.beginObject()
builder.addField("file", obj.file)
builder.addField("file", obj.file.toString)
builder.addField("exists", obj.exists)
builder.endObject()
}

def read[J](jsOpt: Option[J], unbuilder: Unbuilder[J]) = jsOpt match {
case Some(js) =>
unbuilder.beginObject(js)
val file = unbuilder.readField[File]("file")
val file = unbuilder.readField[String]("file")
val exists = unbuilder.readField[Boolean]("exists")
unbuilder.endObject()
PlainFile(file, exists)
PlainFile(new File(file), exists)
case None => deserializationError("Expected JsObject but found None")
}
}
Expand Down

0 comments on commit 5ce1c99

Please sign in to comment.