mirror of
				https://github.com/packwiz/packwiz-installer.git
				synced 2025-11-04 12:34:31 +01:00 
			
		
		
		
	Show download exceptions properly in CLI
This commit is contained in:
		@@ -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()
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user