sbt/cache/src/main/scala/coursier/FileError.scala

76 lines
1.4 KiB
Scala
Raw Normal View History

2016-03-13 22:57:28 +01:00
package coursier
import java.io.File
sealed abstract class FileError(
val `type`: String,
val message: String
2016-05-06 13:54:01 +02:00
) extends Product with Serializable {
def describe: String = s"${`type`}: $message"
}
2016-03-13 22:57:28 +01:00
object FileError {
final case class DownloadError(reason: String) extends FileError(
"download error",
reason
)
2016-03-13 22:57:28 +01:00
final case class NotFound(
file: String,
permanent: Option[Boolean] = None
) extends FileError(
"not found",
file
)
2016-03-13 22:57:28 +01:00
2016-05-06 13:53:55 +02:00
final case class Unauthorized(
file: String,
realm: Option[String]
) extends FileError(
"unauthorized",
file + realm.fold("")(" (" + _ + ")")
)
2016-03-13 22:57:28 +01:00
final case class ChecksumNotFound(
sumType: String,
file: String
) extends FileError(
"checksum not found",
file
)
2016-03-13 22:57:28 +01:00
final case class ChecksumFormatError(
sumType: String,
file: String
) extends FileError(
"checksum format error",
file
)
2016-03-13 22:57:28 +01:00
final case class WrongChecksum(
sumType: String,
got: String,
expected: String,
file: String,
sumFile: String
) extends FileError(
"wrong checksum",
file
)
2016-03-13 22:57:28 +01:00
sealed abstract class Recoverable(
`type`: String,
message: String
) extends FileError(`type`, message)
final case class Locked(file: File) extends Recoverable(
"locked",
file.toString
)
final case class ConcurrentDownload(url: String) extends Recoverable(
"concurrent download",
url
)
2016-03-13 22:57:28 +01:00
}