feat: improve logging

This commit is contained in:
oSumAtrIX
2022-06-23 02:10:11 +02:00
parent 04805e45fe
commit df85fa37ef
10 changed files with 83 additions and 46 deletions

View File

@@ -1,7 +1,8 @@
package app.revanced.cli.command
import app.revanced.cli.logging.impl.DefaultCliLogger
import app.revanced.cli.patcher.Patcher
import app.revanced.cli.patcher.PatcherLogger
import app.revanced.cli.patcher.logging.impl.PatcherLogger
import app.revanced.cli.signing.Signing
import app.revanced.cli.signing.SigningOptions
import app.revanced.patcher.PatcherOptions
@@ -25,6 +26,8 @@ private class CLIVersionProvider : IVersionProvider {
versionProvider = CLIVersionProvider::class
)
internal object MainCommand : Runnable {
val logger = DefaultCliLogger()
@ArgGroup(exclusive = false, multiplicity = "1")
lateinit var args: Args
@@ -91,7 +94,7 @@ internal object MainCommand : Runnable {
override fun run() {
if (args.lArgs?.listOnly == true) {
for (patchBundlePath in args.patchBundles) for (patch in JarPatchBundle(patchBundlePath).loadPatches()) {
println("[available] ${patch.patchName}: ${patch.description}")
logger.info("${patch.patchName}: ${patch.description}")
}
return
}
@@ -134,13 +137,10 @@ internal object MainCommand : Runnable {
if (args.clean) File(args.cacheDirectory).deleteRecursively()
adb?.let {
println("[deploying]")
it.deploy()
}
adb?.deploy()
if (args.clean && args.deploy != null) Files.delete(outputFile.toPath())
println("[done]")
logger.info("Finished")
}
}

View File

@@ -0,0 +1,8 @@
package app.revanced.cli.logging
internal interface CliLogger {
fun error(msg: String)
fun info(msg: String)
fun trace(msg: String)
fun warn(msg: String)
}

View File

@@ -0,0 +1,20 @@
package app.revanced.cli.logging.impl
import app.revanced.cli.command.MainCommand
import app.revanced.cli.logging.CliLogger
import java.util.logging.Logger
internal class DefaultCliLogger(
private val logger: Logger = Logger.getLogger(MainCommand::javaClass.name)
) : CliLogger {
companion object {
init {
System.setProperty("java.util.logging.SimpleFormatter.format", "%4\$s: %5\$s %n")
}
}
override fun error(msg: String) = logger.severe(msg)
override fun info(msg: String) = logger.info(msg)
override fun trace(msg: String) = logger.finest(msg)
override fun warn(msg: String) = logger.warning(msg)
}

View File

@@ -1,6 +1,7 @@
package app.revanced.cli.patcher
import app.revanced.cli.command.MainCommand.args
import app.revanced.cli.command.MainCommand.logger
import app.revanced.utils.filesystem.ZipFileSystemUtils
import app.revanced.utils.patcher.addPatchesFiltered
import app.revanced.utils.patcher.applyPatchesVerbose
@@ -30,12 +31,14 @@ internal object Patcher {
ZipFileSystemUtils(inputFile, output).use { fileSystem ->
// replace all dex files
result.dexFiles.forEach {
logger.info("Writing dex file ${it.name}")
fileSystem.write(it.name, it.dexFileInputStream.readAllBytes())
}
// inputFile being null implies resource patching being disabled
if (inputFile != null) {
// write resources
logger.info("Writing resources")
fileSystem.writeInput()
fileSystem.uncompress(*result.doNotCompress!!.toTypedArray())
}

View File

@@ -1,23 +0,0 @@
package app.revanced.cli.patcher
import app.revanced.patcher.PatchLogger
object PatcherLogger : PatchLogger {
private const val prefix = "[patcher]"
override fun error(msg: String) {
println("error: $prefix: $msg")
}
override fun info(msg: String) {
println("info: $prefix: $msg")
}
override fun trace(msg: String) {
println("trace: $prefix: $msg")
}
override fun warn(msg: String) {
println("warn: $prefix: $msg")
}
}

View File

@@ -0,0 +1,13 @@
package app.revanced.cli.patcher.logging.impl
import app.revanced.cli.logging.impl.DefaultCliLogger
import java.util.logging.Logger
internal object PatcherLogger : app.revanced.patcher.logging.Logger{
private val logger = DefaultCliLogger(Logger.getLogger(app.revanced.patcher.Patcher::javaClass.name))
override fun error(msg: String) = logger.error(msg)
override fun info(msg: String) = logger.info(msg)
override fun warn(msg: String)= logger.warn(msg)
override fun trace(msg: String)= logger.trace(msg)
}

View File

@@ -1,6 +1,7 @@
package app.revanced.cli.signing
import app.revanced.cli.command.MainCommand.args
import app.revanced.cli.command.MainCommand.logger
import app.revanced.utils.signing.Signer
import app.revanced.utils.signing.align.ZipAligner
import java.io.File
@@ -12,15 +13,16 @@ object Signing {
val signedOutput = cacheDirectory.resolve("${outputFile.nameWithoutExtension}_signed.apk")
// align the inputFile and write to alignedOutput
println("[aligning]")
logger.info("Aligning ${inputFile.name}")
ZipAligner.align(inputFile, alignedOutput)
// sign the alignedOutput and write to signedOutput
// the reason is, in case the signer fails
// it does not damage the output file
println("[signing]")
logger.info("Signing ${alignedOutput.name}")
Signer(signingOptions).signApk(alignedOutput, signedOutput)
// afterwards copy over the file to the output
logger.info("Copying ${signedOutput.name} to ${outputFile.name}")
signedOutput.copyTo(outputFile, true)
}
}