fix: migrate from PatchLoader.load(...) to JarPatchBundle(...).loadPatches()

Signed-off-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
oSumAtrIX 2022-05-25 23:15:27 +02:00
parent 61235d7c41
commit cabd32fda4
No known key found for this signature in database
GPG Key ID: A9B3094ACDB604B4
2 changed files with 16 additions and 11 deletions

View File

@ -2,7 +2,7 @@ package app.revanced.cli
import app.revanced.patcher.annotation.Name
import app.revanced.patcher.extensions.findAnnotationRecursively
import app.revanced.patcher.util.patch.PatchLoader
import app.revanced.patcher.util.patch.implementation.JarPatchBundle
import app.revanced.utils.adb.Adb
import app.revanced.utils.patcher.addPatchesFiltered
import app.revanced.utils.signature.Signature
@ -20,7 +20,7 @@ internal object MainCommand : Runnable {
internal var includedPatches = arrayOf<String>()
@Option(names = ["-p", "--patches"], description = ["One or more bundles of patches"])
internal var patchBundles = arrayOf<File>()
internal var patchBundles = arrayOf<String>()
@Option(names = ["-t", "--temp-dir"], description = ["Temporal resource cache directory"], required = true)
internal lateinit var cacheDirectory: String
@ -54,8 +54,8 @@ internal object MainCommand : Runnable {
override fun run() {
if (listOnly) {
for (patchBundle in patchBundles)
for (it in PatchLoader.loadFromFile(patchBundle))
for (patchBundlePath in patchBundles)
for (it in JarPatchBundle(patchBundlePath).loadPatches())
println(
"[available] ${
it.javaClass.findAnnotationRecursively(
@ -90,7 +90,7 @@ internal object MainCommand : Runnable {
if (clean) File(cacheDirectory).deleteRecursively()
adb?.deploy()
if (clean) outputFile.delete()
}
}

View File

@ -7,7 +7,7 @@ import app.revanced.patcher.annotation.Name
import app.revanced.patcher.data.base.Data
import app.revanced.patcher.extensions.findAnnotationRecursively
import app.revanced.patcher.patch.base.Patch
import app.revanced.patcher.util.patch.PatchLoader
import app.revanced.patcher.util.patch.implementation.JarPatchBundle
fun Patcher.addPatchesFiltered(
packageCompatibilityFilter: Boolean = true,
@ -19,7 +19,7 @@ fun Patcher.addPatchesFiltered(
MainCommand.patchBundles.forEach { bundle ->
val includedPatches = mutableListOf<Patch<Data>>()
PatchLoader.loadFromFile(bundle).forEach patch@{ p ->
JarPatchBundle(bundle).loadPatches().forEach patch@{ p ->
val patch = p.getDeclaredConstructor().newInstance()
val compatibilityAnnotation = patch.javaClass.findAnnotationRecursively(Compatibility::class.java)
@ -41,13 +41,13 @@ fun Patcher.addPatchesFiltered(
}
for (compatiblePackage in compatibilityAnnotation.compatiblePackages) {
compatibilityAnnotation.compatiblePackages.forEach { compatiblePackage ->
if (packageCompatibilityFilter && compatiblePackage.name != packageName) {
println("$prefix: Package name not matching ${compatiblePackage.name}.")
return@patch
}
if (!packageVersionCompatibilityFilter || compatiblePackage.versions.any { it == packageVersion }) continue
if (!packageVersionCompatibilityFilter || compatiblePackage.versions.any { it == packageVersion }) return@patch
println("$prefix: Unsupported version.")
return@patch
}
@ -61,8 +61,13 @@ fun Patcher.addPatchesFiltered(
}
fun Patcher.applyPatchesPrint() {
for ((patch, result) in this.applyPatches()) {
println("[${if (result.isFailure) "error" else "success"}] $patch")
this.applyPatches().forEach { (patch, result) ->
if (result.isSuccess) {
println("[success] $patch")
return@forEach
}
println("[error] $patch:")
result.exceptionOrNull()!!.printStackTrace()
}
}