mirror of
https://github.com/ReVanced/revanced-cli.git
synced 2026-01-20 18:04:00 +00:00
feat: improve logging
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
|
||||
8
src/main/kotlin/app/revanced/cli/logging/CliLogger.kt
Normal file
8
src/main/kotlin/app/revanced/cli/logging/CliLogger.kt
Normal 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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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())
|
||||
}
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user