Show download exceptions properly in CLI

This commit is contained in:
comp500 2020-12-11 18:18:10 +00:00
parent 60887a4312
commit f52cd19ad4
2 changed files with 15 additions and 4 deletions

View File

@ -152,6 +152,9 @@ internal class DownloadTask private constructor(val metadata: IndexFile.File, de
}
}
// TODO: if already exists and has correct hash, ignore?
// TODO: add .disabled support?
try {
val hash: Hash
val fileHashFormat: String
@ -177,8 +180,12 @@ internal class DownloadTask private constructor(val metadata: IndexFile.File, de
if (fileSource.hashIsEqual(hash)) {
// isDirectory follows symlinks, but createDirectories doesn't
if (!Files.isDirectory(destPath.parent)) {
try {
Files.createDirectories(destPath.parent)
} catch (e: FileAlreadyExistsException) {
if (!Files.isDirectory(destPath.parent)) {
throw e
}
}
Files.copy(data.inputStream(), destPath, StandardCopyOption.REPLACE_EXISTING)
data.clear()

View File

@ -3,6 +3,7 @@ package link.infra.packwiz.installer.ui
import link.infra.packwiz.installer.ui.IUserInterface.ExceptionListResult
import java.util.concurrent.CompletableFuture
import java.util.concurrent.Future
import kotlin.system.exitProcess
class CLIHandler : IUserInterface {
override fun handleException(e: Exception) {
@ -40,8 +41,11 @@ class CLIHandler : IUserInterface {
}
override fun showExceptions(exceptions: List<ExceptionDetails>, numTotal: Int, allowsIgnore: Boolean): Future<ExceptionListResult> {
val future = CompletableFuture<ExceptionListResult>()
future.complete(ExceptionListResult.CANCEL)
return future
println("Failed to download modpack, the following errors were encountered:")
for (ex in exceptions) {
println(ex.name + ": ")
ex.exception.printStackTrace()
}
exitProcess(1)
}
}