From 64d9127291ea9a8abe21a0e82721721495094472 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 4 Oct 2023 04:18:31 +0200 Subject: [PATCH] fix: Only set options for filtered patches This prevents errors when settings required options from patches that are not accepted to `null`. --- .../app/revanced/cli/command/PatchCommand.kt | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt index daae3dd..3d46c31 100644 --- a/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt +++ b/src/main/kotlin/app/revanced/cli/command/PatchCommand.kt @@ -196,13 +196,6 @@ internal object PatchCommand : Runnable { logger.warning("Unknown input of patches:\n${unknownPatches.joinToString("\n")}") } - logger.info("Setting patch options") - - optionsFile.let { - if (it.exists()) patches.setOptions(it) - else Options.serialize(patches, prettyPrint = true).let(it::writeText) - } - // endregion Patcher( @@ -213,11 +206,18 @@ internal object PatchCommand : Runnable { resourceCachePath.absolutePath, ) ).use { patcher -> + val filteredPatches = patcher.filterPatchSelection(patches).also { patches -> + logger.info("Setting patch options") + + if (optionsFile.exists()) patches.setOptions(optionsFile) + else Options.serialize(patches, prettyPrint = true).let(optionsFile::writeText) + } + // region Patch val patcherResult = patcher.apply { acceptIntegrations(integrations) - acceptPatches(filterPatchSelection(patches)) + acceptPatches(filteredPatches.toList()) // Execute patches. runBlocking { @@ -277,7 +277,7 @@ internal object PatchCommand : Runnable { * @param patches The patches to filter. * @return The filtered patches. */ - private fun Patcher.filterPatchSelection(patches: PatchSet) = buildList { + private fun Patcher.filterPatchSelection(patches: PatchSet): PatchSet = buildSet { val packageName = context.packageMetadata.packageName val packageVersion = context.packageMetadata.packageVersion